private void OnRenderProjector(Camera camera) { if (!enabled) { return; } if (m_currentFrameCount == Time.frameCount) { // do not render shadow texture more than once per frame. return; } m_currentFrameCount = Time.frameCount; if (drawTargetObject != null) { drawTargetObject.OnPreCull(); } if (m_renderPass == null) { m_renderPass = new RenderShadowTexturePass(this); } m_renderPass.ResetFrame(); ProjectorForLWRP.ProjectorRendererFeature.AddRenderPass(camera, m_renderPass); if (m_isTexturePropertyChanged) { CreateRenderTexture(); } }
internal void ConfigureRenderTarget(RenderShadowTexturePass pass) { PrepareRendering(); if (useIntermediateTexture) { pass.ConfigureTarget(new RenderTargetIdentifier(m_temporaryRenderTarget)); } else { pass.ConfigureTarget(new RenderTargetIdentifier(shadowTexture)); } pass.ConfigureClear(ClearFlag.Color, m_camera.backgroundColor); }
internal void ConfigureRenderTarget(RenderShadowTexturePass pass, ref CameraData cameraData) { PrepareRendering(); if (useIntermediateTexture) { pass.ConfigureTarget(new RenderTargetIdentifier(m_temporaryRenderTarget)); pass.ConfigureClear(ClearFlag.Color, m_camera.backgroundColor); } else { pass.ConfigureTarget(BuiltinRenderTextureType.CameraTarget, BuiltinRenderTextureType.CameraTarget); cameraData.camera.allowMSAA = multiSampling != TextureMultiSample.x1; cameraData.cameraTargetDescriptor.msaaSamples = (int)multiSampling; } }