예제 #1
0
        DeferredLightingRTResources PrepareDeferredLightingRTResources(RTHandle directionBuffer, RTHandle ouputBuffer)
        {
            DeferredLightingRTResources deferredResources = new DeferredLightingRTResources();

            deferredResources.directionBuffer    = directionBuffer;
            deferredResources.depthStencilBuffer = m_SharedRTManager.GetDepthStencilBuffer();
            deferredResources.normalBuffer       = m_SharedRTManager.GetNormalBuffer();

            // Temporary buffers
            deferredResources.gbuffer0       = m_RaytracingGBufferManager.GetBuffer(0);
            deferredResources.gbuffer1       = m_RaytracingGBufferManager.GetBuffer(1);
            deferredResources.gbuffer2       = m_RaytracingGBufferManager.GetBuffer(2);
            deferredResources.gbuffer3       = m_RaytracingGBufferManager.GetBuffer(3);
            deferredResources.distanceBuffer = m_RaytracingDistanceBuffer;

            // Output Buffer
            deferredResources.litBuffer = ouputBuffer;

            return(deferredResources);
        }
        DeferredLightingRTResources PrepareDeferredLightingRTResources(HDCamera hdCamera, RTHandle directionBuffer, RTHandle ouputBuffer)
        {
            DeferredLightingRTResources deferredResources = new DeferredLightingRTResources();

            deferredResources.directionBuffer    = directionBuffer;
            deferredResources.depthStencilBuffer = m_SharedRTManager.GetDepthStencilBuffer();
            deferredResources.normalBuffer       = m_SharedRTManager.GetNormalBuffer();
            deferredResources.skyTexture         = m_SkyManager.GetSkyReflection(hdCamera);

            // Temporary buffers
            deferredResources.gbuffer0       = m_RaytracingGBufferManager.GetBuffer(0);
            deferredResources.gbuffer1       = m_RaytracingGBufferManager.GetBuffer(1);
            deferredResources.gbuffer2       = m_RaytracingGBufferManager.GetBuffer(2);
            deferredResources.gbuffer3       = m_RaytracingGBufferManager.GetBuffer(3);
            deferredResources.distanceBuffer = GetRayTracingBuffer(InternalRayTracingBuffers.Distance);

            // Debug textures
            deferredResources.rayCountTexture = m_RayCountManager.GetRayCountTexture();

            // Output Buffer
            deferredResources.litBuffer = ouputBuffer;

            return(deferredResources);
        }