static public void Setup(_2DRendererData rendererData) { s_RendererData = rendererData; s_LightOperations = rendererData.lightOperations; if (s_RenderTargets == null) { s_RenderTargets = new RenderTargetHandle[s_LightOperations.Length]; s_RenderTargets[0].Init("_ShapeLightTexture0"); s_RenderTargets[1].Init("_ShapeLightTexture1"); s_RenderTargets[2].Init("_ShapeLightTexture2"); s_RenderTargets[3].Init("_ShapeLightTexture3"); s_RenderTargetsDirty = new bool[s_LightOperations.Length]; } if (s_NormalsTarget.id == 0) { s_NormalsTarget.Init("_NormalMap"); } // The array size should be determined by the number of 'feature bit' the material index has. See GetLightMaterialIndex(). // Not all slots must be filled because certain combinations of the feature bits don't make sense (e.g. sprite bit on + shape bit off). if (s_LightMaterials == null) { s_LightMaterials = new Material[k_NumberOfLightMaterials]; } }
public RenderObjectsPass(string profilerTag, RenderPassEvent renderPassEvent, string[] shaderTags, RenderQueueType renderQueueType, int layerMask, RenderObjects.CustomCameraSettings cameraSettings) { m_ProfilerTag = profilerTag; this.renderPassEvent = renderPassEvent; this.renderQueueType = renderQueueType; this.overrideMaterial = null; this.overrideMaterialPassIndex = 0; RenderQueueRange renderQueueRange = (renderQueueType == RenderQueueType.Transparent) ? RenderQueueRange.transparent : RenderQueueRange.opaque; m_FilteringSettings = new FilteringSettings(renderQueueRange, layerMask); if (shaderTags != null && shaderTags.Length > 0) { foreach (var passName in shaderTags) { m_ShaderTagIdList.Add(new ShaderTagId(passName)); } } else { m_ShaderTagIdList.Add(new ShaderTagId("LightweightForward")); m_ShaderTagIdList.Add(new ShaderTagId("SRPDefaultUnlit")); } m_RenderStateBlock = new RenderStateBlock(RenderStateMask.Nothing); m_CameraSettings = cameraSettings; _dest = new RenderTargetHandle(); _dest.Init("go_ReflectionTex"); //_dest.id = 1198; }
/// <summary> /// Setup the pass /// </summary> /// <param name="baseDescriptor"></param> /// <param name="sourceHandle">Source of rendering to execute the post on</param> /// <param name="destinationHandle">Destination target for the final blit</param> public void Setup( RenderTextureDescriptor baseDescriptor, RenderTargetHandle sourceHandle, RenderTargetHandle destinationHandle, bool opaquePost, bool flip) { source = sourceHandle; destination = destinationHandle; descriptor = baseDescriptor; this.flip = flip; this.opaquePost = opaquePost; m_TemporaryColorTexture.Init("_TemporaryColorTexture"); m_ReleaseTemporaryRenderTexture = false; }
private void Init() { if (m_Initialized) { return; } m_DepthOnlyPass = new DepthOnlyPass(); m_MainLightShadowCasterPass = new MainLightShadowCasterPass(); m_AdditionalLightsShadowCasterPass = new AdditionalLightsShadowCasterPass(); m_SetupForwardRenderingPass = new SetupForwardRenderingPass(); m_ScreenSpaceShadowResolvePass = new ScreenSpaceShadowResolvePass(); m_CreateLightweightRenderTexturesPass = new CreateLightweightRenderTexturesPass(); m_BeginXrRenderingPass = new BeginXRRenderingPass(); m_SetupLightweightConstants = new SetupLightweightConstanstPass(); m_RenderOpaqueForwardPass = new RenderOpaqueForwardPass(); m_CreatePostOpaqueColorPass = new CreateColorRenderTexturesPass(); m_OpaquePostProcessPass = new PostProcessPass(); m_DrawSkyboxPass = new DrawSkyboxPass(); m_CopyDepthPass = new CopyDepthPass(); m_CopyColorPass = new CopyColorPass(); m_CreatePostTransparentColorPass = new CreateColorRenderTexturesPass(); m_RenderTransparentForwardPass = new RenderTransparentForwardPass(); m_PostProcessPass = new PostProcessPass(); m_FinalBlitPass = new FinalBlitPass(); m_CapturePass = new CapturePass(); m_EndXrRenderingPass = new EndXRRenderingPass(); #if UNITY_EDITOR m_SceneViewDepthCopyPass = new SceneViewDepthCopyPass(); m_LitGizmoRenderingPass = new GizmoRenderingPass(); m_UnlitGizmoRenderingPass = new GizmoRenderingPass(); #endif // RenderTexture format depends on camera and pipeline (HDR, non HDR, etc) // Samples (MSAA) depend on camera and pipeline m_ColorAttachment.Init("_CameraColorTexture"); m_ColorAttachmentAfterOpaquePost.Init("_CameraColorTextureAfterOpaquePost"); m_ColorAttachmentAfterTransparentPost.Init("_CameraColorTextureAfterTransparentPost"); m_DepthAttachment.Init("_CameraDepthAttachment"); m_DepthTexture.Init("_CameraDepthTexture"); m_OpaqueColor.Init("_CameraOpaqueTexture"); m_MainLightShadowmap.Init("_MainLightShadowmapTexture"); m_AdditionalLightsShadowmap.Init("_AdditionalLightsShadowmapTexture"); m_ScreenSpaceShadowmap.Init("_ScreenSpaceShadowmapTexture"); m_Initialized = true; }
public ForwardRendererSetup(ForwardRendererData data) { Material blitMaterial = CoreUtils.CreateEngineMaterial(data.blitShader); Material copyDepthMaterial = CoreUtils.CreateEngineMaterial(data.copyDepthShader); Material samplingMaterial = CoreUtils.CreateEngineMaterial(data.samplingShader); Material screenspaceShadowsMaterial = CoreUtils.CreateEngineMaterial(data.screenSpaceShadowShader); m_DepthOnlyPass = new DepthOnlyPass(); m_MainLightShadowCasterPass = new MainLightShadowCasterPass(); m_AdditionalLightsShadowCasterPass = new AdditionalLightsShadowCasterPass(); m_SetupForwardRenderingPass = new SetupForwardRenderingPass(); m_ScreenSpaceShadowResolvePass = new ScreenSpaceShadowResolvePass(screenspaceShadowsMaterial); m_CreateLightweightRenderTexturesPass = new CreateLightweightRenderTexturesPass(); m_BeginXrRenderingPass = new BeginXRRenderingPass(); m_SetupLightweightConstants = new SetupLightweightConstanstPass(); m_RenderOpaqueForwardPass = new RenderOpaqueForwardPass(); m_OpaquePostProcessPass = new PostProcessPass(); m_DrawSkyboxPass = new DrawSkyboxPass(); m_CopyDepthPass = new CopyDepthPass(copyDepthMaterial); m_CopyColorPass = new CopyColorPass(samplingMaterial); m_RenderTransparentForwardPass = new RenderTransparentForwardPass(); m_PostProcessPass = new PostProcessPass(); m_FinalBlitPass = new FinalBlitPass(blitMaterial); m_CapturePass = new CapturePass(); m_EndXrRenderingPass = new EndXRRenderingPass(); #if UNITY_EDITOR m_SceneViewDepthCopyPass = new SceneViewDepthCopyPass(copyDepthMaterial); m_LitGizmoRenderingPass = new GizmoRenderingPass(); m_UnlitGizmoRenderingPass = new GizmoRenderingPass(); #endif // RenderTexture format depends on camera and pipeline (HDR, non HDR, etc) // Samples (MSAA) depend on camera and pipeline m_ColorAttachment.Init("_CameraColorTexture"); m_ColorAttachmentAfterOpaquePost.Init("_CameraColorTextureAfterOpaquePost"); m_ColorAttachmentAfterTransparentPost.Init("_CameraColorTextureAfterTransparentPost"); m_DepthAttachment.Init("_CameraDepthAttachment"); m_DepthTexture.Init("_CameraDepthTexture"); m_OpaqueColor.Init("_CameraOpaqueTexture"); m_MainLightShadowmap.Init("_MainLightShadowmapTexture"); m_AdditionalLightsShadowmap.Init("_AdditionalLightsShadowmapTexture"); m_ScreenSpaceShadowmap.Init("_ScreenSpaceShadowmapTexture"); }
public RenderObjectsToRTPass(string profilerTag, RenderPassEvent renderPassEvent, string[] shaderTags, RenderQueueType renderQueueType, int layerMask, uint renderLayerMask, RenderObjectsToRT.CustomCameraSettingsRT cameraSettings) { m_ColorTextureHandle.Init("_CameraColorTexture"); m_DepthAttachmentTextureHandle.Init("_CameraDepthAttachment"); m_ProfilerTag = profilerTag; this.renderPassEvent = renderPassEvent; this.renderQueueType = renderQueueType; this.overrideMaterial = null; this.overrideMaterialPassIndex = 0; RenderQueueRange renderQueueRange = (renderQueueType == RenderQueueType.Transparent) ? RenderQueueRange.transparent : RenderQueueRange.opaque; m_FilteringSettings = new FilteringSettings(renderQueueRange, layerMask, renderLayerMask); if (shaderTags != null && shaderTags.Length > 0) { foreach (var passName in shaderTags) { m_ShaderTagIdList.Add(new ShaderTagId(passName)); } } else { m_ShaderTagIdList.Add(new ShaderTagId("LightweightForward")); m_ShaderTagIdList.Add(new ShaderTagId("SRPDefaultUnlit")); } m_RenderStateBlock = new RenderStateBlock(RenderStateMask.Nothing); m_CameraSettings = cameraSettings; }