From 12a0a4c349eff27ae6205b329ed64ba36afc2ee2 Mon Sep 17 00:00:00 2001 From: Mathias Paulin <mathias.paulin@irit.fr> Date: Thu, 8 Apr 2021 15:07:34 +0200 Subject: [PATCH] fix crash due to envmap in custom pass --- .../Passes/CustomAttribToColorPass.cpp | 30 +++++++++---------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/libRender/RadiumNBR/Passes/CustomAttribToColorPass.cpp b/src/libRender/RadiumNBR/Passes/CustomAttribToColorPass.cpp index 911902a..c4d29a2 100644 --- a/src/libRender/RadiumNBR/Passes/CustomAttribToColorPass.cpp +++ b/src/libRender/RadiumNBR/Passes/CustomAttribToColorPass.cpp @@ -143,26 +143,24 @@ void CustomAttribToColorPass::execute( glClearBufferfv( GL_DEPTH, 0, &clearDepth ); - if ( m_envmap ) { m_passParams.addParameter( "envStrength", m_envmap->getEnvStrength() ); - } - - // TODO : if an envmap is set, render with the envmap only ? - if ( m_lightmanager->count() > 0 ) - { - // for ( const auto& l : m_lights ) - for ( size_t i = 0; i < m_lightmanager->count(); ++i ) + for ( const auto& ro : *m_objectsToRender ) { - Ra::Engine::Data::RenderParameters passParams; - const auto l = m_lightmanager->getLight( i ); - l->getRenderParameters( passParams ); - if (m_envmap) { - passParams.concatParameters( m_passParams ); - } - for ( const auto& ro : *m_objectsToRender ) + ro->render( m_passParams, viewParams, passIndex() ); + } + } else { + if ( m_lightmanager->count() > 0 ) + { + for ( size_t i = 0; i < m_lightmanager->count(); ++i ) { - ro->render( passParams, viewParams, passIndex() ); + Ra::Engine::Data::RenderParameters passParams; + const auto l = m_lightmanager->getLight( i ); + l->getRenderParameters( passParams ); + for ( const auto& ro : *m_objectsToRender ) + { + ro->render( passParams, viewParams, passIndex() ); + } } } } -- GitLab