|
|
|
|
|
|
ScriptableRenderContext.EmitWorldGeometryForSceneView(camera); |
|
|
|
} |
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
if (m_FrameSettings.enableDBuffer) |
|
|
|
{ |
|
|
|
// decal system needs to be updated with current camera, it needs it to set up culling and light list generation parameters
|
|
|
|
|
|
|
using (new ProfilingSample(cmd, "DBufferPrepareDrawData", CustomSamplerId.DBufferPrepareDrawData.GetSampler())) |
|
|
|
{ |
|
|
|
if (m_FrameSettings.enableDBuffer) |
|
|
|
{ |
|
|
|
DecalSystem.instance.EndCull(); |
|
|
|
{ |
|
|
|
DecalSystem.instance.EndCull(); |
|
|
|
DecalSystem.instance.UpdateCachedMaterialData(cmd); // textures, alpha or fade distances could've changed
|
|
|
|
DecalSystem.instance.CreateDrawData(); // prepare data is separate from draw
|
|
|
|
DecalSystem.instance.UpdateCachedMaterialData(cmd); // textures, alpha or fade distances could've changed
|
|
|
|
DecalSystem.instance.CreateDrawData(); // prepare data is separate from draw
|
|
|
|
} |
|
|
|
} |
|
|
|
renderContext.SetupCameraProperties(camera, m_FrameSettings.enableStereo); |
|
|
|
|
|
|
m_DbufferManager.SetHTile(m_DbufferManager.bufferCount, cmd); |
|
|
|
DecalSystem.instance.RenderIntoDBuffer(cmd); |
|
|
|
m_DbufferManager.UnSetHTile(cmd); |
|
|
|
m_DbufferManager.SetHTileTexture(cmd); // mask per 8x8 tile used for optimization when looking up dbuffer values
|
|
|
|
m_DbufferManager.SetHTileTexture(cmd); // mask per 8x8 tile used for optimization when looking up dbuffer values
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
HDUtils.SetRenderTarget(cmd, hdCamera, m_CameraColorBuffer, m_CameraDepthStencilBuffer); |
|
|
|
if (m_FrameSettings.enableDBuffer) // enable d-buffer flag value is being interpreted more like enable decals in general now that we have clustered
|
|
|
|
{ |
|
|
|
{ |
|
|
|
DecalSystem.instance.SetAtlas(cmd); // for clustered decals
|
|
|
|
} |
|
|
|
RenderTransparentRenderList(cullResults, camera, renderContext, cmd, m_AllTransparentPassNames, m_currentRendererConfigurationBakedLighting, pass == ForwardPass.PreRefraction ? HDRenderQueue.k_RenderQueue_PreRefraction : HDRenderQueue.k_RenderQueue_Transparent); |
|
|
|