@@ -140,6 +140,12 @@ public void OnDisable()
140140
141141 }
142142
143+ bool IsSkyValid ( SkyParameters parameters )
144+ {
145+ // Later we will also test shader for procedural skies.
146+ return parameters . skyHDRI != null ;
147+ }
148+
143149 private void RenderSky ( Camera camera , SkyParameters skyParameters , bool forceUVBottom , RenderLoop renderLoop )
144150 {
145151 Mesh skyMesh = BuildSkyMesh ( camera , forceUVBottom ) ;
@@ -155,31 +161,35 @@ private void RenderSky(Camera camera, SkyParameters skyParameters, bool forceUVB
155161
156162 public void RenderSky ( Camera camera , SkyParameters skyParameters , RenderTargetIdentifier colorBuffer , RenderTargetIdentifier depthBuffer , RenderLoop renderLoop )
157163 {
158- // Render sky into a cubemap - doesn't happen every frame, can be control
159- for ( int i = 0 ; i < 6 ; ++ i )
164+ if ( IsSkyValid ( skyParameters ) )
160165 {
161- Utilities . SetRenderTarget ( renderLoop , m_SkyboxCubemapRT , "" , 0 , ( CubemapFace ) i ) ;
162- Camera faceCamera = m_CubemapFaceCamera [ i ] . GetComponent < Camera > ( ) ;
163- RenderSky ( faceCamera , skyParameters , true , renderLoop ) ;
164- }
166+ // Render sky into a cubemap - doesn't happen every frame, can be control
167+ for ( int i = 0 ; i < 6 ; ++ i )
168+ {
169+ Utilities . SetRenderTarget ( renderLoop , m_SkyboxCubemapRT , "" , 0 , ( CubemapFace ) i ) ;
170+ Camera faceCamera = m_CubemapFaceCamera [ i ] . GetComponent < Camera > ( ) ;
171+ RenderSky ( faceCamera , skyParameters , true , renderLoop ) ;
172+ }
173+
174+ m_StandardSkyboxMaterial . SetTexture ( "_Tex" , m_SkyboxCubemapRT ) ;
175+ RenderSettings . skybox = m_StandardSkyboxMaterial ; // Setup this material as the default to be use in RenderSettings
176+ RenderSettings . ambientIntensity = 1.0f ; // fix this to 1, this parameter should not exist!
177+ RenderSettings . ambientMode = UnityEngine . Rendering . AmbientMode . Skybox ; // Force skybox for our HDRI
178+ RenderSettings . reflectionIntensity = 1.0f ;
179+ //DynamicGI.UpdateEnvironment();
165180
166- m_StandardSkyboxMaterial . SetTexture ( "_Tex" , m_SkyboxCubemapRT ) ;
167- RenderSettings . skybox = m_StandardSkyboxMaterial ; // Setup this material as the default to be use in RenderSettings
168- RenderSettings . ambientIntensity = 1.0f ; // fix this to 1, this parameter should not exist!
169- RenderSettings . ambientMode = UnityEngine . Rendering . AmbientMode . Skybox ; // Force skybox for our HDRI
170- RenderSettings . reflectionIntensity = 1.0f ;
171- DynamicGI . UpdateEnvironment ( ) ;
181+ // TODO: do a render to texture here
172182
173- // TODO: do a render to texture here
183+ // Downsample the cubemap and provide it to Enlighten
174184
175- // Downsample the cubemap and provide it to Enlighten
185+ // TODO: currently workaround is to set the cubemap in a Skybox/cubemap material
186+ //m_SkyboxMaterial.SetTexture(cubemap);
176187
177- // TODO: currently workaround is to set the cubemap in a Skybox/cubemap material
178- //m_SkyboxMaterial.SetTexture(cubemap);
188+ // Render the sky itself
189+ Utilities . SetRenderTarget ( renderLoop , colorBuffer , depthBuffer , "Sky Pass" ) ;
190+ RenderSky ( camera , skyParameters , false , renderLoop ) ;
179191
180- // Render the sky itself
181- Utilities . SetRenderTarget ( renderLoop , colorBuffer , depthBuffer , "Sky Pass" ) ;
182- RenderSky ( camera , skyParameters , false , renderLoop ) ;
192+ }
183193 }
184194 }
185195}
0 commit comments