@@ -266,7 +266,7 @@ static void SetupGBuffer(int width, int height, CommandBuffer cmd)
266
266
cmd . GetTemporaryRT ( s_GBufferZ , width , height , 24 , FilterMode . Point , RenderTextureFormat . Depth ) ;
267
267
cmd . GetTemporaryRT ( s_CameraDepthTexture , width , height , 24 , FilterMode . Point , RenderTextureFormat . Depth ) ;
268
268
cmd . GetTemporaryRT ( s_CameraTarget , width , height , 0 , FilterMode . Point , formatHDR , RenderTextureReadWrite . Default , 1 , true ) ; // rtv/uav
269
-
269
+
270
270
var colorMRTs = new RenderTargetIdentifier [ 4 ] { s_GBufferAlbedo , s_GBufferSpecRough , s_GBufferNormal , s_GBufferEmission } ;
271
271
cmd . SetRenderTarget ( colorMRTs , new RenderTargetIdentifier ( s_GBufferZ ) ) ;
272
272
cmd . ClearRenderTarget ( true , true , new Color ( 0 , 0 , 0 , 0 ) ) ;
@@ -347,7 +347,7 @@ bool usingFptl
347
347
return ! disableFptl ;
348
348
}
349
349
}
350
-
350
+
351
351
static void CopyDepthAfterGBuffer ( RenderLoop loop )
352
352
{
353
353
var cmd = new CommandBuffer { name = "Copy depth" } ;
@@ -470,8 +470,8 @@ void DoTiledDeferredLighting(Camera camera, RenderLoop loop, int numLights, int
470
470
}
471
471
else
472
472
{
473
- cmd . Blit ( 0 , s_CameraTarget , m_DeferredMaterial , 0 ) ;
474
- cmd . Blit ( 0 , s_CameraTarget , m_DeferredReflectionMaterial , 0 ) ;
473
+ cmd . Blit ( BuiltinRenderTextureType . CameraTarget , s_CameraTarget , m_DeferredMaterial , 0 ) ;
474
+ cmd . Blit ( BuiltinRenderTextureType . CameraTarget , s_CameraTarget , m_DeferredReflectionMaterial , 0 ) ;
475
475
}
476
476
477
477
@@ -974,15 +974,6 @@ int GenerateSourceLightBuffers(Camera camera, CullResults inputs)
974
974
return numLightsOut + numProbesOut ;
975
975
}
976
976
977
- #if UNITY_EDITOR
978
- public override void RenderSceneView ( Camera camera , RenderLoop renderLoop )
979
- {
980
- base . RenderSceneView ( camera , renderLoop ) ;
981
- renderLoop . PrepareForEditorRendering ( camera , new RenderTargetIdentifier ( s_CameraDepthTexture ) ) ;
982
- renderLoop . Submit ( ) ;
983
- }
984
- #endif
985
-
986
977
public override void Render ( Camera [ ] cameras , RenderLoop renderLoop )
987
978
{
988
979
foreach ( var camera in cameras )
@@ -1065,9 +1056,20 @@ void ExecuteRenderLoop(Camera camera, CullResults cullResults, RenderLoop loop)
1065
1056
1066
1057
// debug views.
1067
1058
if ( enableDrawLightBoundsDebug ) DrawLightBoundsDebug ( loop , cullResults . visibleLights . Length ) ;
1068
-
1059
+
1069
1060
// present frame buffer.
1070
1061
FinalPass ( loop ) ;
1062
+
1063
+ // bind depth surface for editor grid/gizmo/selection rendering
1064
+ if ( camera . cameraType == CameraType . SceneView )
1065
+ {
1066
+ var cmd = new CommandBuffer ( ) ;
1067
+ cmd . SetRenderTarget ( BuiltinRenderTextureType . CameraTarget , new RenderTargetIdentifier ( s_CameraDepthTexture ) ) ;
1068
+ loop . ExecuteCommandBuffer ( cmd ) ;
1069
+ cmd . Dispose ( ) ;
1070
+ }
1071
+ loop . Submit ( ) ;
1072
+
1071
1073
}
1072
1074
1073
1075
void DrawLightBoundsDebug ( RenderLoop loop , int numLights )
0 commit comments