diff --git a/src/Features/IBL.cpp b/src/Features/IBL.cpp index 68dc3d3ace..a61ec7286c 100644 --- a/src/Features/IBL.cpp +++ b/src/Features/IBL.cpp @@ -69,10 +69,14 @@ void IBL::Prepass() auto& dynamicCubemaps = globals::features::dynamicCubemaps; - const auto& envTexture = dynamicCubemaps.envTexture; - const auto& envReflectionsTexture = dynamicCubemaps.envReflectionsTexture; - - std::array srvs = { reflections.SRV, envTexture->srv.get(), envReflectionsTexture->srv.get() }; + auto& envTexture = dynamicCubemaps.envTexture; + auto& envReflectionsTexture = dynamicCubemaps.envReflectionsTexture; + + std::array srvs = { + reflections.SRV, + (dynamicCubemaps.loaded && envTexture) ? envTexture->srv.get() : nullptr, + (dynamicCubemaps.loaded && envReflectionsTexture) ? envReflectionsTexture->srv.get() : nullptr + }; std::array uavs = { diffuseIBLTexture->uav.get() }; std::array samplers = { Deferred::GetSingleton()->linearSampler };