diff --git a/src/libRender/RadiumNBR/Renderer/Visualization.cpp b/src/libRender/RadiumNBR/Renderer/Visualization.cpp index d1cfb7696af05fec40ea10289eff731f2da2566f..edc5998096cb17e87e79ba69dfd0d8664433c00a 100644 --- a/src/libRender/RadiumNBR/Renderer/Visualization.cpp +++ b/src/libRender/RadiumNBR/Renderer/Visualization.cpp @@ -80,6 +80,8 @@ void VisualizationController::update( const Ra::Engine::Data::ViewingParameters& auto defColor = Ra::Core::Utils::Color::linearRGBTosRGB( m_renderer->getBackgroundColor() ); m_clearPass->setBackground( defColor ); } + // TODO : do this only once ? + if ( m_envmap ) { m_envmap->updateGL(); } }; void VisualizationController::resize( int w, int h ){ @@ -125,6 +127,7 @@ void VisualizationController::setEnvMap( const std::string& files ) { m_clearPass->setEnvMap( nullptr ); m_customPass->setEnvMap( nullptr ); m_hasEnvMap = false; + m_envmap = nullptr; } else { @@ -138,9 +141,9 @@ void VisualizationController::setEnvMap( const std::string& files ) { if ( ext != "pfm" ) { t = EnvMap::EnvMapType::ENVMAP_LATLON; } } // for now, only skyboxes are managed - auto e = std::make_shared<EnvMap>( files, t, true ); - m_clearPass->setEnvMap( e ); - m_customPass->setEnvMap( e ); + m_envmap = std::make_shared<EnvMap>( files, t, true ); + m_clearPass->setEnvMap( m_envmap ); + m_customPass->setEnvMap( m_envmap ); m_hasEnvMap = true; } } diff --git a/src/libRender/RadiumNBR/Renderer/Visualization.hpp b/src/libRender/RadiumNBR/Renderer/Visualization.hpp index 85813d32746a13a5fba3c783499d56da49d4e91e..35f13fda841cd7aedf1f00ab13a2455aa3fd11eb 100644 --- a/src/libRender/RadiumNBR/Renderer/Visualization.hpp +++ b/src/libRender/RadiumNBR/Renderer/Visualization.hpp @@ -1,5 +1,7 @@ #include <RadiumNBR/NodeBasedRenderer.hpp> +#include <RadiumNBR/EnvMap.hpp> + namespace RadiumNBR { class CustomAttribToColorPass; class ClearPass; @@ -74,6 +76,9 @@ class NodeBasedRenderer_LIBRARY_API VisualizationController /// Is an envmap attached to the renderer bool m_hasEnvMap{false}; + + /// The Environment to used for skybox display + std::shared_ptr<EnvMap> m_envmap{nullptr}; }; } // namespace RadiumNBR