@@ -266,7 +266,7 @@ static void SetupGBuffer(int width, int height, CommandBuffer cmd)
266266 cmd . GetTemporaryRT ( s_GBufferZ , width , height , 24 , FilterMode . Point , RenderTextureFormat . Depth ) ;
267267 cmd . GetTemporaryRT ( s_CameraDepthTexture , width , height , 24 , FilterMode . Point , RenderTextureFormat . Depth ) ;
268268 cmd . GetTemporaryRT ( s_CameraTarget , width , height , 0 , FilterMode . Point , formatHDR , RenderTextureReadWrite . Default , 1 , true ) ; // rtv/uav
269-
269+
270270 var colorMRTs = new RenderTargetIdentifier [ 4 ] { s_GBufferAlbedo , s_GBufferSpecRough , s_GBufferNormal , s_GBufferEmission } ;
271271 cmd . SetRenderTarget ( colorMRTs , new RenderTargetIdentifier ( s_GBufferZ ) ) ;
272272 cmd . ClearRenderTarget ( true , true , new Color ( 0 , 0 , 0 , 0 ) ) ;
@@ -347,7 +347,7 @@ bool usingFptl
347347 return ! disableFptl ;
348348 }
349349 }
350-
350+
351351 static void CopyDepthAfterGBuffer ( RenderLoop loop )
352352 {
353353 var cmd = new CommandBuffer { name = "Copy depth" } ;
@@ -470,8 +470,8 @@ void DoTiledDeferredLighting(Camera camera, RenderLoop loop, int numLights, int
470470 }
471471 else
472472 {
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 ) ;
475475 }
476476
477477
@@ -974,15 +974,6 @@ int GenerateSourceLightBuffers(Camera camera, CullResults inputs)
974974 return numLightsOut + numProbesOut ;
975975 }
976976
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-
986977 public override void Render ( Camera [ ] cameras , RenderLoop renderLoop )
987978 {
988979 foreach ( var camera in cameras )
@@ -1065,9 +1056,20 @@ void ExecuteRenderLoop(Camera camera, CullResults cullResults, RenderLoop loop)
10651056
10661057 // debug views.
10671058 if ( enableDrawLightBoundsDebug ) DrawLightBoundsDebug ( loop , cullResults . visibleLights . Length ) ;
1068-
1059+
10691060 // present frame buffer.
10701061 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+
10711073 }
10721074
10731075 void DrawLightBoundsDebug ( RenderLoop loop , int numLights )
0 commit comments