public override void FrameUpdate(PipelineCamera cam, ref PipelineCommandData data, CommandBuffer buffer)
 {
     sharedData.autoExposureTexture = RuntimeUtilities.whiteTexture;
     sharedData.screenSize          = new Vector2Int(cam.cam.pixelWidth, cam.cam.pixelHeight);
     sharedData.uberMaterial.SetTexture(PostProcessing.ShaderIDs.AutoExposureTex, sharedData.autoExposureTexture);
     renderAction(ref data);
     if (sharedData.keywordsTransformed)
     {
         sharedData.keywordsTransformed         = false;
         sharedData.uberMaterial.shaderKeywords = sharedData.shaderKeywords.ToArray();
     }
     PostFunctions.RunPostProcess(ref cam.targets, buffer, ref data, uberAction);
     PipelineFunctions.ReleaseRenderTarget(sharedData.temporalRT);
 }
예제 #2
0
        public override void FrameUpdate(PipelineCamera cam, ref PipelineCommandData data, CommandBuffer buffer)
        {
            HistoryTexture texComponent = IPerCameraData.GetProperty <HistoryTexture>(cam, GetHistoryTex);

            texComponent.UpdateProperty(cam);
            SetHistory(cam.cam, buffer, ref texComponent.historyTex, cam.targets.renderTarget);
            historyTex = texComponent.historyTex;
            //TAA Start
            const float kMotionAmplification_Blending = 100f * 60f;
            const float kMotionAmplification_Bounding = 100f * 30f;

            block.SetVector(ShaderIDs._Jitter, jitter);
            block.SetFloat(ShaderIDs._Sharpness, sharpness);
            block.SetVector(ShaderIDs._TemporalClipBounding, new Vector4(stationaryAABBScale, motionAABBScale, kMotionAmplification_Bounding, 0f));
            block.SetVector(ShaderIDs._FinalBlendParameters, new Vector4(stationaryBlending, motionBlending, kMotionAmplification_Blending, 0f));
            block.SetTexture(ShaderIDs._HistoryTex, historyTex);
            PostFunctions.RunPostProcess(ref cam.targets, buffer, ref data, taaFunction);
        }