public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData) { var camera = renderingData.cameraData.camera; TAAData TaaData; if (!m_TAADatas.TryGetValue(camera, out TaaData)) { TaaData = new TAAData(); m_TAADatas.Add(camera, TaaData); } var stack = VolumeManager.instance.stack; var TaaComonent = stack.GetComponent <TemporalAntiAliasing>(); if (TaaComonent.IsActive() && !renderingData.cameraData.isSceneViewCamera) { UpdateTAAData(renderingData, TaaData, TaaComonent); m_cameraSettingPass.Setup(TaaData); renderer.EnqueuePass(m_cameraSettingPass); m_TAAPass.Setup(TaaData, TaaComonent); renderer.EnqueuePass(m_TAAPass); } else if (!TaaComonent.IsActive()) { m_TAAPass.Clear(); } }
internal void Setup(TAAData TaaData, TemporalAntiAliasing Taa) { // Set data m_TaaData = TaaData; m_taa = Taa; m_Material = new Material(Shader.Find(TaaShader)); }
void UpdateTAAData(RenderingData renderingData, TAAData TaaData, TemporalAntiAliasing Taa) { Camera camera = renderingData.cameraData.camera; Vector2 additionalSample = Utils.GenerateRandomOffset() * Taa.spread.value; TaaData.sampleOffset = additionalSample; TaaData.porjPreview = previewProj; TaaData.viewPreview = previewView; TaaData.projOverride = camera.orthographic ? Utils.GetJitteredOrthographicProjectionMatrix(camera, TaaData.sampleOffset) : Utils.GetJitteredPerspectiveProjectionMatrix(camera, TaaData.sampleOffset); TaaData.sampleOffset = new Vector2(TaaData.sampleOffset.x / camera.scaledPixelWidth, TaaData.sampleOffset.y / camera.scaledPixelHeight); previewView = camera.worldToCameraMatrix; previewProj = camera.projectionMatrix; }
internal void Setup(TAAData data) { m_TaaData = data; }