From 86ce40f7728ea14c22a69c0bcbf61c0d16a61248 Mon Sep 17 00:00:00 2001 From: Emmanuel Benoit Date: Mon, 2 Oct 2017 19:06:15 +0200 Subject: [PATCH] Raymarcher - reverted(ish) use of program pipeline --- raymarcher.cc | 24 ++++++++++++++++++++++++ raymarcher.hh | 2 ++ 2 files changed, 26 insertions(+) diff --git a/raymarcher.cc b/raymarcher.cc index 27c7c62..641f201 100644 --- a/raymarcher.cc +++ b/raymarcher.cc @@ -23,7 +23,9 @@ T_Raymarcher::T_Raymarcher( .add( txDepth_ ) .create( ) ) { +#if 0 glGenProgramPipelines( 1 , &pipeline_ ); +#endif program_.addFile( "raymarch-header.glsl" ); program_.addFile( "pbr.glsl" ); @@ -32,10 +34,12 @@ T_Raymarcher::T_Raymarcher( program_.addFile( "raymarcher.glsl" ); program_.load( ); +#if 0 auto& fsq( T_ShaderProgram::FullscreenQuad( watcher ) ); glUseProgramStages( pipeline_ , GL_VERTEX_SHADER_BIT , fsq.id( ) ); glUseProgramStages( pipeline_ , GL_FRAGMENT_SHADER_BIT , program_.id( ) ); assert( glGetError( ) == GL_NO_ERROR ); +#endif } @@ -47,7 +51,11 @@ void T_Raymarcher::render( ) return; } +#if 0 glBindProgramPipeline( pipeline_ ); +#else + program_.activate( ); +#endif glClearColor( 0 , 0 , 0 , 1 ); glClear( GL_COLOR_BUFFER_BIT ); enum { @@ -61,6 +69,7 @@ void T_Raymarcher::render( ) U_RAYMARCHER = 7 , }; +#if 0 glProgramUniform1f( program_.id( ) , U_TIME , 0 ); glProgramUniform2f( program_.id( ) , U_RESOLUTION , rtOutput_.width( ) , rtOutput_.height( ) ); @@ -76,6 +85,21 @@ void T_Raymarcher::render( ) glDrawArrays( GL_TRIANGLE_STRIP , 0 , 4 ); glBindProgramPipeline( 0 ); +#else + glUniform1f( U_TIME , 0 ); + glUniform2f( U_RESOLUTION , rtOutput_.width( ) , rtOutput_.height( ) ); + + glUniform3fv( U_CAM_POS , 1 , &camera_.pos.x ); + glUniform3fv( U_LOOK_AT , 1 , &camera_.lookAt.x ); + glUniform3fv( U_CAM_UP , 1 , &camera_.up.x ); + glUniform1f( U_NEAR_PLANE , camera_.np ); + + glUniform3f( U_LIGHT_DIR , 0 , 1 , -1 ); + + glUniform4f( U_RAYMARCHER , rmIterations , rmStep , rmEpsilon , rmMaxDist ); + + glRectf( -1 , -1 , 1 , 1 ); +#endif PEND( ); } diff --git a/raymarcher.hh b/raymarcher.hh index c24a26e..5a70c21 100644 --- a/raymarcher.hh +++ b/raymarcher.hh @@ -28,7 +28,9 @@ struct T_Raymarcher private: T_Camera camera_; +#if 0 GLuint pipeline_; +#endif T_ShaderProgram program_; T_Texture txOutput_ , txDepth_;