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);
 }
예제 #3
0
 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;
     }
 }