1- // Must be in sync with ShaderConfig.cs
2- //#define VELOCITY_IN_GBUFFER
3-
41using UnityEngine . Rendering ;
52using UnityEngine . Experimental . Rendering ;
63using System . Collections . Generic ;
@@ -136,7 +133,6 @@ public void BindBuffers(Material mat)
136133 TextureSettings m_TextureSettings = TextureSettings . Default ;
137134
138135 // Various set of material use in render loop
139- Material m_DeferredMaterial ;
140136 Material m_FinalPassMaterial ;
141137 Material m_DebugViewMaterialGBuffer ;
142138
@@ -150,8 +146,7 @@ public void BindBuffers(Material mat)
150146 RenderTargetIdentifier m_CameraDepthBufferRT ;
151147 RenderTargetIdentifier m_VelocityBufferRT ;
152148 RenderTargetIdentifier m_DistortionBufferRT ;
153-
154-
149+
155150 public class LightList
156151 {
157152 public List < DirectionalLightData > directionalLights ;
@@ -237,8 +232,7 @@ public override void Rebuild()
237232
238233 m_SkyRenderer = new SkyRenderer ( ) ;
239234 m_SkyRenderer . Rebuild ( ) ;
240-
241- m_DeferredMaterial = Utilities . CreateEngineMaterial ( "Hidden/HDRenderLoop/Deferred" ) ;
235+
242236 m_FinalPassMaterial = Utilities . CreateEngineMaterial ( "Hidden/HDRenderLoop/FinalPass" ) ;
243237 m_DebugViewMaterialGBuffer = Utilities . CreateEngineMaterial ( "Hidden/HDRenderLoop/DebugViewMaterialGBuffer" ) ;
244238
@@ -295,7 +289,6 @@ void OnDisable()
295289 m_SinglePassLightLoop . OnDisable ( ) ;
296290 m_TilePassLightLoop . OnDisable ( ) ;
297291
298- Utilities . Destroy ( m_DeferredMaterial ) ;
299292 Utilities . Destroy ( m_FinalPassMaterial ) ;
300293 Utilities . Destroy ( m_DebugViewMaterialGBuffer ) ;
301294
@@ -341,6 +334,7 @@ void InitAndClearBuffer(Camera camera, RenderLoop renderLoop)
341334 Utilities . SetRenderTarget ( renderLoop , m_CameraColorBufferRT , m_CameraDepthBufferRT , ClearFlag . ClearDepth ) ;
342335 }
343336
337+
344338 // TEMP: As we are in development and have not all the setup pass we still clear the color in emissive buffer and gbuffer, but this will be removed later.
345339
346340 // Clear HDR target
@@ -392,10 +386,10 @@ void RenderDepthPrepass(CullResults cull, Camera camera, RenderLoop renderLoop)
392386 if ( ! debugParameters . useDepthPrepass )
393387 return ;
394388
395- // TODO: Must do opaque then alpha masked for performance!
389+ // TODO: Must do opaque then alpha masked for performance!
396390 // TODO: front to back for opaque and by materal for opaque tested when we split in two
397391 Utilities . SetRenderTarget ( renderLoop , m_CameraDepthBufferRT , "Depth Prepass" ) ;
398- RenderOpaqueRenderList ( cull , camera , renderLoop , "DepthOnly" ) ;
392+ RenderOpaqueRenderList ( cull , camera , renderLoop , "DepthOnly" ) ;
399393 }
400394
401395 void RenderGBuffer ( CullResults cull , Camera camera , RenderLoop renderLoop )
@@ -437,11 +431,11 @@ void RenderDebugViewMaterial(CullResults cull, Camera camera, RenderLoop renderL
437431 // Render GBuffer opaque
438432 if ( ! debugParameters . useForwardRenderingOnly )
439433 {
440- Vector4 screenSize = ComputeScreenSize ( camera ) ;
434+ Vector4 screenSize = Utilities . ComputeScreenSize ( camera ) ;
441435 m_DebugViewMaterialGBuffer . SetVector ( "_ScreenSize" , screenSize ) ;
442436 m_DebugViewMaterialGBuffer . SetFloat ( "_DebugViewMaterial" , ( float ) debugParameters . debugViewMaterial ) ;
443437
444- // m_gbufferManager.BindBuffers(m_DeferredMaterial );
438+ // m_gbufferManager.BindBuffers(m_DebugViewMaterialGBuffer );
445439 // TODO: Bind depth textures
446440 var cmd = new CommandBuffer { name = "GBuffer Debug Pass" } ;
447441 cmd . Blit ( null , m_CameraColorBufferRT , m_DebugViewMaterialGBuffer , 0 ) ;
@@ -463,21 +457,6 @@ void RenderDebugViewMaterial(CullResults cull, Camera camera, RenderLoop renderL
463457 }
464458 }
465459
466- Matrix4x4 GetViewProjectionMatrix ( Camera camera )
467- {
468- // The actual projection matrix used in shaders is actually massaged a bit to work across all platforms
469- // (different Z value ranges etc.)
470- var gpuProj = GL . GetGPUProjectionMatrix ( camera . projectionMatrix , false ) ;
471- var gpuVP = gpuProj * camera . worldToCameraMatrix ;
472-
473- return gpuVP ;
474- }
475-
476- Vector4 ComputeScreenSize ( Camera camera )
477- {
478- return new Vector4 ( camera . pixelWidth , camera . pixelHeight , 1.0f / camera . pixelWidth , 1.0f / camera . pixelHeight ) ;
479- }
480-
481460 void RenderDeferredLighting ( Camera camera , RenderLoop renderLoop )
482461 {
483462 if ( debugParameters . useForwardRenderingOnly )
@@ -488,24 +467,14 @@ void RenderDeferredLighting(Camera camera, RenderLoop renderLoop)
488467 // Bind material data
489468 m_LitRenderLoop . Bind ( ) ;
490469
491- var invViewProj = GetViewProjectionMatrix ( camera ) . inverse ;
492- m_DeferredMaterial . SetMatrix ( "_InvViewProjMatrix" , invViewProj ) ;
493-
494- var screenSize = ComputeScreenSize ( camera ) ;
495- m_DeferredMaterial . SetVector ( "_ScreenSize" , screenSize ) ;
496-
497- // m_gbufferManager.BindBuffers(m_DeferredMaterial);
498- // TODO: Bind depth textures
499- var cmd = new CommandBuffer { name = "Deferred Ligthing Pass" } ;
500- cmd . Blit ( null , m_CameraColorBufferRT , m_DeferredMaterial , 0 ) ;
501- renderLoop . ExecuteCommandBuffer ( cmd ) ;
502- cmd . Dispose ( ) ;
470+ m_SinglePassLightLoop . RenderDeferredLighting ( camera , renderLoop , m_CameraColorBuffer ) ;
471+ // m_TilePassLightLoop.RenderDeferredLighting(camera, renderLoop, );
503472 }
504473
505474 void RenderSky ( Camera camera , RenderLoop renderLoop )
506475 {
507476 m_SkyRenderer . RenderSky ( camera , m_SkyParameters , m_CameraColorBufferRT , m_CameraDepthBufferRT , renderLoop ) ;
508- }
477+ }
509478
510479 void RenderForward ( CullResults cullResults , Camera camera , RenderLoop renderLoop )
511480 {
@@ -683,10 +652,10 @@ void PrepareLightsForGPU(CullResults cullResults, Camera camera, ref ShadowOutpu
683652
684653 if ( additionalData . archetype == LightArchetype . Rectangle )
685654 {
686- lightData . lightType = GPULightType . Rectangle ;
687- }
688- else
689- {
655+ lightData . lightType = GPULightType . Rectangle ;
656+ }
657+ else
658+ {
690659 lightData . lightType = GPULightType . Line ;
691660 }
692661 }
@@ -926,8 +895,6 @@ public override void Render(Camera[] cameras, RenderLoop renderLoop)
926895
927896 PushGlobalParams ( camera , renderLoop , m_lightList ) ;
928897
929-
930-
931898 RenderDeferredLighting ( camera , renderLoop ) ;
932899
933900 RenderSky ( camera , renderLoop ) ;
0 commit comments