Skip to content

Commit c3296fc

Browse files
- Disabled SkyRendering when no HDRI is present.
- Temporarily disabled DynamicGI.UpdateEnvironment() call for now (was too slow if done each frame).
1 parent c117ad4 commit c3296fc

File tree

1 file changed

+29
-19
lines changed

1 file changed

+29
-19
lines changed

Assets/ScriptableRenderLoop/HDRenderLoop/Sky/SkyRenderer.cs

Lines changed: 29 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)