Esempio n. 1
0
    public SsfPass(
        RenderPassEvent renderPassEvent,
        Material material,
        int blurryIterations,
        LayerMask layerMask,
        RenderQueueRange renderQueueRange)
    {
        this.renderPassEvent = renderPassEvent;
        this.material        = material;
        filteringSettings    = new FilteringSettings(renderQueueRange, layerMask);

        blurringTargetHandles = new RenderTargetHandle[blurryIterations];
        for (var i = 0; i < blurryIterations; i++)
        {
            blurringTargetHandles[i].Init($"_BlurTemp{i}");
        }

        depthTargetHandle.Init("_SsfDepthTexture");
        depthNormalTargetHandle.Init("_SsfNormalTexture");

        downSamplingPass = material.FindPass("DownSampling");
        upSamplingPass   = material.FindPass("UpSampling");
        depthNormalPass  = material.FindPass("DepthNormal");
        litPass          = material.FindPass("SsfLit");
    }
Esempio n. 2
0
        public OnlyDepthShadowmapRenderPass(string profilerTag, bool opaque, RenderPassEvent evt, RenderQueueRange renderQueueRange, LayerMask layerMask)//, StencilState stencilState, int stencilReference)
        {
            m_ProfilerTag      = profilerTag;
            m_ProfilingSampler = new ProfilingSampler(profilerTag);

            m_ShaderTagIdList.Add(new ShaderTagId("ShadowCaster"));

            renderPassEvent = evt;

            m_MainLightShadowmap.Init("_ZorroShadowmapTexture");

            m_FilteringSettings = new FilteringSettings(renderQueueRange, layerMask);
            m_RenderStateBlock  = new RenderStateBlock(RenderStateMask.Nothing);

            //if (stencilState.enabled)
            //{
            //    m_RenderStateBlock.stencilReference = stencilReference;
            //    m_RenderStateBlock.mask = RenderStateMask.Stencil;
            //    m_RenderStateBlock.stencilState = stencilState;
            //}
            _CustomWorldToShadowID = Shader.PropertyToID("_ZorroShadowMatrix");
            _CustomShadowParams    = Shader.PropertyToID("_ZorroShadowParams");

            //m_MainLightShadowmap.Init("_CustomLightShadowmapTexture");
        }
Esempio n. 3
0
    public RenderLayerObjectPass(string profilerTag, RenderPassEvent renderPassEvent, string[] shaderTags, RenderLayerObjectFeature.RenderQueueType renderQueueType, uint layerMask, RenderLayerObjectFeature.CustomCameraSettings cameraSettings)
    {
        m_ProfilerTag                  = profilerTag;
        m_ProfilingSampler             = new ProfilingSampler(profilerTag);
        this.renderPassEvent           = renderPassEvent;
        this.renderQueueType           = renderQueueType;
        this.overrideMaterial          = null;
        this.overrideMaterialPassIndex = 0;
        RenderQueueRange renderQueueRange = (renderQueueType == RenderLayerObjectFeature.RenderQueueType.Transparent)
                        ? RenderQueueRange.transparent
                        : RenderQueueRange.opaque;

        m_FilteringSettings = new FilteringSettings(renderQueueRange, -1, layerMask);

        if (shaderTags != null && shaderTags.Length > 0)
        {
            foreach (var passName in shaderTags)
            {
                m_ShaderTagIdList.Add(new ShaderTagId(passName));
            }
        }
        else
        {
            m_ShaderTagIdList.Add(new ShaderTagId("SRPDefaultUnlit"));
            m_ShaderTagIdList.Add(new ShaderTagId("UniversalForward"));
            m_ShaderTagIdList.Add(new ShaderTagId("LightweightForward"));
        }

        m_RenderStateBlock = new RenderStateBlock(RenderStateMask.Nothing);
        m_CameraSettings   = cameraSettings;
    }
        public RenderMetaballsDepthPass(string profilerTag, RenderPassEvent renderPassEvent,
                                        string[] shaderTags, RenderQueueType renderQueueType, int layerMask)
        {
            profilingSampler = new ProfilingSampler(nameof(RenderObjectsPass));

            _profilingSampler     = new ProfilingSampler(profilerTag);
            this.renderPassEvent  = renderPassEvent;
            this._renderQueueType = renderQueueType;
            RenderQueueRange renderQueueRange = (renderQueueType == RenderQueueType.Transparent)
                ? RenderQueueRange.transparent
                : RenderQueueRange.opaque;

            _filteringSettings = new FilteringSettings(renderQueueRange, layerMask);

            if (shaderTags != null && shaderTags.Length > 0)
            {
                foreach (var passName in shaderTags)
                {
                    _shaderTagIdList.Add(new ShaderTagId(passName));
                }
            }
            else
            {
                _shaderTagIdList.Add(new ShaderTagId("SRPDefaultUnlit"));
                _shaderTagIdList.Add(new ShaderTagId("UniversalForward"));
                _shaderTagIdList.Add(new ShaderTagId("UniversalForwardOnly"));
                _shaderTagIdList.Add(new ShaderTagId("LightweightForward"));
            }

            _renderStateBlock = new RenderStateBlock(RenderStateMask.Nothing);
        }
Esempio n. 5
0
 /// <summary>
 /// Create the CopyColorPass
 /// </summary>
 public CopyColorPass(RenderPassEvent evt, Material samplingMaterial)
 {
     m_SamplingMaterial         = samplingMaterial;
     m_SampleOffsetShaderHandle = Shader.PropertyToID("_SampleOffset");
     renderPassEvent            = evt;
     m_DownsamplingMethod       = Downsampling.None;
 }
Esempio n. 6
0
 public RenderOpaqueForwardPass(RenderPassEvent evt, RenderQueueRange renderQueueRange, LayerMask layerMask)
 {
     m_ShaderTagIdList.Add(new ShaderTagId("LightweightForward"));
     m_ShaderTagIdList.Add(new ShaderTagId("SRPDefaultUnlit"));
     renderPassEvent     = evt;
     m_FilteringSettings = new FilteringSettings(renderQueueRange, layerMask);
 }
Esempio n. 7
0
 public CopyDepthPass(RenderPassEvent evt, Material copyDepthMaterial)
 {
     base.profilingSampler = new ProfilingSampler(nameof(CopyDepthPass));
     AllocateRT            = true;
     m_CopyDepthMaterial   = copyDepthMaterial;
     renderPassEvent       = evt;
 }
Esempio n. 8
0
        public DrawGizmosPass(RenderPassEvent evt, UnityEngine.Rendering.GizmoSubset gizmoSubset)
        {
            renderPassEvent = evt;
            m_gizmoSubset   = gizmoSubset;

            m_ProfilingSampler = new ProfilingSampler($"Draw gizmos ({gizmoSubset.ToString()})");
        }
Esempio n. 9
0
        public Render2DObjectPass(Renderer2DData rendererData, RenderPassEvent renderPassEvent, string[] lightModeTags, RenderQueueType renderQueueType, int layerMask, RenderObjects.CustomCameraSettings cameraSettings)
        {
            renderFeaturePassTag = "RenderFeature " + lightModeTags[0];
            //Draw setting 相关流程
            this.renderPassEvent = renderPassEvent;
            this.renderQueueType = renderQueueType;
            RenderQueueRange renderQueueRange = (renderQueueType == RenderQueueType.Transparent) ? RenderQueueRange.transparent : RenderQueueRange.opaque;

            m_FilteringSettings = new FilteringSettings(renderQueueRange, layerMask);
            if (s_SortingLayers == null)
            {
                s_SortingLayers = SortingLayer.layers;
            }
            this.m_CameraSettings = cameraSettings;
            //Tag
            for (int i = 0; i < lightModeTags.Length; i++)
            {
                var         tag = lightModeTags[i];
                ShaderTagId sid = new ShaderTagId(tag);
                k_ShaderTags.Add(sid);
            }

            //
            m_Renderer2DData = rendererData;
        }
        public RenderObjectsToTexturePass(string profilerTag, RenderPassEvent renderPassEvent, string[] shaderTags, RenderQueueType renderQueueType, int layerMask, RenderObjectsToTexture.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;

            // Copy depth buffer material
            m_CopyDepthMaterial = CoreUtils.CreateEngineMaterial(Shader.Find("Hidden/Lightweight Render Pipeline/CopyDepth"));
        }
Esempio n. 11
0
 public CloudShadowPass(Material mat, RenderPassEvent passEvenet)
 {
     m_Material           = mat;
     this.renderPassEvent = passEvenet;
     //初始化辅助RT名字
     m_TemporaryColorTexture.Init("CloudShadow");
 }
        public PostProcessPass(RenderPassEvent evt, bool renderOpaques = false)
        {
            m_IsOpaquePostProcessing = renderOpaques;
            m_TemporaryColorTexture.Init("_TemporaryColorTexture");

            renderPassEvent = evt;
        }
        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;
        }
    ShaderTagId depthOnlyShaderTag = new ShaderTagId("DepthOnly"); // "LightMode" = "DepthOnly" tag to so it only renders depth

    public DepthNormalsRenderPass(RenderPassEvent renderPassEvent)
    {
        this.renderPassEvent = renderPassEvent;
        material             = CoreUtils.CreateEngineMaterial(SHADER_NAME);

        filteringSettings = new FilteringSettings(RenderQueueRange.opaque, -1); // Which objects are included in this render pass
    }
Esempio n. 15
0
        public FinalBlitPass(RenderPassEvent evt, Material blitMaterial)
        {
            base.profilingSampler = new ProfilingSampler(nameof(FinalBlitPass));

            m_BlitMaterial  = blitMaterial;
            renderPassEvent = evt;
        }
        /// <summary>
        /// Creates a new <c>MainLightShadowCasterPass</c> instance.
        /// </summary>
        /// <param name="evt">The <c>RenderPassEvent</c> to use.</param>
        /// <seealso cref="RenderPassEvent"/>
        public MainLightShadowCasterPass(RenderPassEvent evt)
        {
            base.profilingSampler = new ProfilingSampler(nameof(MainLightShadowCasterPass));
            renderPassEvent       = evt;

            m_MainLightShadowMatrices = new Matrix4x4[k_MaxCascades + 1];
            m_CascadeSlices           = new ShadowSliceData[k_MaxCascades];
            m_CascadeSplitDistances   = new Vector4[k_MaxCascades];

            MainLightShadowConstantBuffer._WorldToShadow = Shader.PropertyToID("_MainLightWorldToShadow");
            MainLightShadowConstantBuffer._ShadowParams  = Shader.PropertyToID("_MainLightShadowParams");
            MainLightShadowConstantBuffer._CascadeShadowSplitSpheres0    = Shader.PropertyToID("_CascadeShadowSplitSpheres0");
            MainLightShadowConstantBuffer._CascadeShadowSplitSpheres1    = Shader.PropertyToID("_CascadeShadowSplitSpheres1");
            MainLightShadowConstantBuffer._CascadeShadowSplitSpheres2    = Shader.PropertyToID("_CascadeShadowSplitSpheres2");
            MainLightShadowConstantBuffer._CascadeShadowSplitSpheres3    = Shader.PropertyToID("_CascadeShadowSplitSpheres3");
            MainLightShadowConstantBuffer._CascadeShadowSplitSphereRadii = Shader.PropertyToID("_CascadeShadowSplitSphereRadii");
            MainLightShadowConstantBuffer._ShadowOffset0 = Shader.PropertyToID("_MainLightShadowOffset0");
            MainLightShadowConstantBuffer._ShadowOffset1 = Shader.PropertyToID("_MainLightShadowOffset1");
            MainLightShadowConstantBuffer._ShadowOffset2 = Shader.PropertyToID("_MainLightShadowOffset2");
            MainLightShadowConstantBuffer._ShadowOffset3 = Shader.PropertyToID("_MainLightShadowOffset3");
            MainLightShadowConstantBuffer._ShadowmapSize = Shader.PropertyToID("_MainLightShadowmapSize");

            m_MainLightShadowmapID       = Shader.PropertyToID("_MainLightShadowmapTexture");
            m_EmptyLightShadowmapTexture = ShadowUtils.AllocShadowRT(1, 1, k_ShadowmapBufferBits, 1, 0, name: "_EmptyLightShadowmapTexture");
        }
Esempio n. 17
0
 public NormalOnlyPass(RenderPassEvent evt, RenderQueueRange renderQueueRange)
 {
     m_FilteringSettings = new FilteringSettings(renderQueueRange);
     renderPassEvent     = evt;
     normalsMaterial     =
         CoreUtils.CreateEngineMaterial(Shader.Find("Hidden/Roystan/Normals Texture"));
 }
Esempio n. 18
0
    public CustomRendererPass(string profilerTag, ShaderTagId[] shaderTagIds, bool opaque, RenderPassEvent evt, RenderQueueRange renderQueueRange, LayerMask layerMask, StencilState stencilState, int stencilReference)
    {
        base.profilingSampler = new ProfilingSampler(nameof(CustomRendererPass));

        m_ProfilerTag      = profilerTag;
        m_ProfilingSampler = new ProfilingSampler(profilerTag);
        //将要识别的Shader标签加入队列
        foreach (ShaderTagId sid in shaderTagIds)
        {
            m_ShaderTagIdList.Add(sid);
        }
        renderPassEvent     = evt;
        m_FilteringSettings = new FilteringSettings(renderQueueRange, layerMask);

        //模板测试据盒
        m_RenderStateBlock = new RenderStateBlock(RenderStateMask.Nothing);
        m_IsOpaque         = opaque;

        if (stencilState.enabled)//模板测试是否激活
        {
            m_RenderStateBlock.stencilReference = stencilReference;
            m_RenderStateBlock.mask             = RenderStateMask.Stencil;
            m_RenderStateBlock.stencilState     = stencilState;
        }
    }
Esempio n. 19
0
 public FogPass(string profilerTag,
                RenderPassEvent renderPassEvent, Material materialToBlit)
 {
     this.profilerTag     = profilerTag;
     this.renderPassEvent = renderPassEvent;
     this.materialToBlit  = materialToBlit;
 }
Esempio n. 20
0
        public AdditionalUIRenderPass(string profilerTag, RenderPassEvent renderPassEvent, string[] shaderTags, int layerMask,
                                      ClearFlag clearFlag)
        {
            m_profilerTag        = profilerTag;
            this.renderPassEvent = renderPassEvent + 2;
            m_clearFlag          = clearFlag;
            var renderQueueRange = RenderQueueRange.all;

            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("UniversalForward"));
                m_shaderTagIdList.Add(new ShaderTagId("LightweightForward"));
                m_shaderTagIdList.Add(new ShaderTagId("SRPDefaultUnlit"));
            }

            m_renderStateBlock = new RenderStateBlock(RenderStateMask.Nothing);
        }
Esempio n. 21
0
        public GBufferPass(RenderPassEvent evt, RenderQueueRange renderQueueRange, LayerMask layerMask, StencilState stencilState, int stencilReference, DeferredLights deferredLights)
        {
            base.profilingSampler = new ProfilingSampler(nameof(GBufferPass));
            base.renderPassEvent  = evt;

            m_DeferredLights    = deferredLights;
            m_FilteringSettings = new FilteringSettings(renderQueueRange, layerMask);
            m_RenderStateBlock  = new RenderStateBlock(RenderStateMask.Nothing);

            m_RenderStateBlock.stencilState     = stencilState;
            m_RenderStateBlock.stencilReference = stencilReference;
            m_RenderStateBlock.mask             = RenderStateMask.Stencil;

            m_ShaderTagValues    = new ShaderTagId[4];
            m_ShaderTagValues[0] = s_ShaderTagLit;
            m_ShaderTagValues[1] = s_ShaderTagSimpleLit;
            m_ShaderTagValues[2] = s_ShaderTagUnlit;
            m_ShaderTagValues[3] = new ShaderTagId(); // Special catch all case for materials where UniversalMaterialType is not defined or the tag value doesn't match anything we know.

            m_RenderStateBlocks    = new RenderStateBlock[4];
            m_RenderStateBlocks[0] = DeferredLights.OverwriteStencil(m_RenderStateBlock, (int)StencilUsage.MaterialMask, (int)StencilUsage.MaterialLit);
            m_RenderStateBlocks[1] = DeferredLights.OverwriteStencil(m_RenderStateBlock, (int)StencilUsage.MaterialMask, (int)StencilUsage.MaterialSimpleLit);
            m_RenderStateBlocks[2] = DeferredLights.OverwriteStencil(m_RenderStateBlock, (int)StencilUsage.MaterialMask, (int)StencilUsage.MaterialUnlit);
            m_RenderStateBlocks[3] = m_RenderStateBlocks[0];
        }
 public DepthNormalsPass(RenderPassEvent evt, RenderQueueRange renderQueueRange, LayerMask layerMask)
 {
     m_FilteringSettings  = new FilteringSettings(renderQueueRange, layerMask);
     renderPassEvent      = evt;
     depthNormalsMaterial =
         CoreUtils.CreateEngineMaterial("Hidden/Internal-DepthNormalsTexture");
 }
Esempio n. 23
0
 public EM_GIFRecorderPass(
     string profilerTag,
     RenderPassEvent renderPassEvent)
 {
     this.profilerTag     = profilerTag;
     this.renderPassEvent = renderPassEvent;
 }
Esempio n. 24
0
 /// <summary>
 /// Creates a new <c>DepthOnlyPass</c> instance.
 /// </summary>
 /// <param name="evt">The <c>RenderPassEvent</c> to use.</param>
 /// <param name="renderQueueRange">The <c>RenderQueueRange</c> to use for creating filtering settings that control what objects get rendered.</param>
 /// <param name="layerMask">The layer mask to use for creating filtering settings that control what objects get rendered.</param>
 /// <seealso cref="RenderPassEvent"/>
 /// <seealso cref="RenderQueueRange"/>
 /// <seealso cref="LayerMask"/>
 public DepthOnlyPass(RenderPassEvent evt, RenderQueueRange renderQueueRange, LayerMask layerMask)
 {
     base.profilingSampler = new ProfilingSampler(nameof(DepthOnlyPass));
     m_FilteringSettings   = new FilteringSettings(renderQueueRange, layerMask);
     renderPassEvent       = evt;
     useNativeRenderPass   = false;
 }
        public MainLightShadowCasterPass(RenderPassEvent evt)
        {
            renderPassEvent = evt;

            m_MainLightShadowMatrices = new Matrix4x4[k_MaxCascades + 1];
            m_CascadeSlices           = new ShadowSliceData[k_MaxCascades];
            m_CascadeSplitDistances   = new Vector4[k_MaxCascades];

            MainLightShadowConstantBuffer._WorldToShadow = Shader.PropertyToID("_MainLightWorldToShadow");
            MainLightShadowConstantBuffer._ShadowParams  = Shader.PropertyToID("_MainLightShadowParams");
            MainLightShadowConstantBuffer._CascadeShadowSplitSpheres0    = Shader.PropertyToID("_CascadeShadowSplitSpheres0");
            MainLightShadowConstantBuffer._CascadeShadowSplitSpheres1    = Shader.PropertyToID("_CascadeShadowSplitSpheres1");
            MainLightShadowConstantBuffer._CascadeShadowSplitSpheres2    = Shader.PropertyToID("_CascadeShadowSplitSpheres2");
            MainLightShadowConstantBuffer._CascadeShadowSplitSpheres3    = Shader.PropertyToID("_CascadeShadowSplitSpheres3");
            MainLightShadowConstantBuffer._CascadeShadowSplitSphereRadii = Shader.PropertyToID("_CascadeShadowSplitSphereRadii");
            MainLightShadowConstantBuffer._ShadowOffset0 = Shader.PropertyToID("_MainLightShadowOffset0");
            MainLightShadowConstantBuffer._ShadowOffset1 = Shader.PropertyToID("_MainLightShadowOffset1");
            MainLightShadowConstantBuffer._ShadowOffset2 = Shader.PropertyToID("_MainLightShadowOffset2");
            MainLightShadowConstantBuffer._ShadowOffset3 = Shader.PropertyToID("_MainLightShadowOffset3");
            MainLightShadowConstantBuffer._ShadowmapSize = Shader.PropertyToID("_MainLightShadowmapSize");


            m_MainLightShadowmap.Init("_MainLightShadowmapTexture");
            m_SupportsBoxFilterForShadows = Application.isMobilePlatform || SystemInfo.graphicsDeviceType == GraphicsDeviceType.Switch;
        }
        public ScreenSpaceShadowComputePass(RenderPassEvent evt, ComputeShader computeShader)
        {
            VxShadowMapConstantBuffer._ShadowData = Shader.PropertyToID("_MainLightShadowData");

            VxShadowMapConstantBuffer._InvViewProjMatrix = Shader.PropertyToID("_InvViewProjMatrix");
            VxShadowMapConstantBuffer._ScreenSize        = Shader.PropertyToID("_ScreenSize");
            VxShadowMapConstantBuffer._BeginOffset       = Shader.PropertyToID("_BeginOffset");
            VxShadowMapConstantBuffer._VoxelZBias        = Shader.PropertyToID("_VoxelZBias");
            VxShadowMapConstantBuffer._VoxelUpBias       = Shader.PropertyToID("_VoxelUpBias");

            VxShadowMapConstantBuffer._VxShadowMapsBuffer      = Shader.PropertyToID("_VxShadowMapsBuffer");
            VxShadowMapConstantBuffer._CameraDepthTexture      = Shader.PropertyToID("_CameraDepthTexture");
            VxShadowMapConstantBuffer._ScreenSpaceShadowOutput = Shader.PropertyToID("_ScreenSpaceShadowOutput");

            bool R8_UNorm = SystemInfo.IsFormatSupported(GraphicsFormat.R8_UNorm, FormatUsage.LoadStore);
            bool R8_SNorm = SystemInfo.IsFormatSupported(GraphicsFormat.R8_SNorm, FormatUsage.LoadStore);
            bool R8_UInt  = SystemInfo.IsFormatSupported(GraphicsFormat.R8_UInt, FormatUsage.LoadStore);
            bool R8_SInt  = SystemInfo.IsFormatSupported(GraphicsFormat.R8_SInt, FormatUsage.LoadStore);

            bool R8 = R8_UNorm || R8_SNorm || R8_UInt || R8_SInt;

            m_ColorFormat = R8 ? RenderTextureFormat.R8 : RenderTextureFormat.RFloat;
            m_ScreenSpaceShadowsComputeShader = computeShader;
            m_ScreenSpaceShadowmapTexture.Init("_ScreenSpaceShadowmapTexture");
            renderPassEvent = evt;
        }
        public AdditionalLightsShadowCasterPass(RenderPassEvent evt)
        {
            renderPassEvent = evt;

            AdditionalShadowsConstantBuffer._AdditionalLightsWorldToShadow = Shader.PropertyToID("_AdditionalLightsWorldToShadow");
            AdditionalShadowsConstantBuffer._AdditionalShadowParams        = Shader.PropertyToID("_AdditionalShadowParams");
            AdditionalShadowsConstantBuffer._AdditionalShadowOffset0       = Shader.PropertyToID("_AdditionalShadowOffset0");
            AdditionalShadowsConstantBuffer._AdditionalShadowOffset1       = Shader.PropertyToID("_AdditionalShadowOffset1");
            AdditionalShadowsConstantBuffer._AdditionalShadowOffset2       = Shader.PropertyToID("_AdditionalShadowOffset2");
            AdditionalShadowsConstantBuffer._AdditionalShadowOffset3       = Shader.PropertyToID("_AdditionalShadowOffset3");
            AdditionalShadowsConstantBuffer._AdditionalShadowmapSize       = Shader.PropertyToID("_AdditionalShadowmapSize");
            m_AdditionalLightsShadowmap.Init("_AdditionalLightsShadowmapTexture");

            m_AdditionalShadowsBufferId   = Shader.PropertyToID("_AdditionalShadowsBuffer");
            m_AdditionalShadowsIndicesId  = Shader.PropertyToID("_AdditionalShadowsIndices");
            m_UseStructuredBuffer         = RenderingUtils.useStructuredBuffer;
            m_SupportsBoxFilterForShadows = Application.isMobilePlatform || SystemInfo.graphicsDeviceType == GraphicsDeviceType.Switch;

            if (!m_UseStructuredBuffer)
            {
                // Preallocated a fixed size. CommandBuffer.SetGlobal* does allow this data to grow.
                int maxLights = UniversalRenderPipeline.maxVisibleAdditionalLights;
                m_AdditionalLightsWorldToShadow = new Matrix4x4[maxLights];
                m_AdditionalLightsShadowParams  = new Vector4[maxLights];
            }
        }
Esempio n. 28
0
 public AirDistortionRenderPass(RenderPassEvent renderPassEvent, Material blitMaterial)
 {
     this.renderPassEvent = renderPassEvent;
     this.blitMaterial    = blitMaterial;
     m_ProfilerTag        = "AirDistortion";
     m_TemporaryColorTexture.Init("_TemporaryColorTexture");
 }
Esempio n. 29
0
 public TileDepthRangePass(RenderPassEvent evt, DeferredLights deferredLights, int passIndex)
 {
     base.profilingSampler = new ProfilingSampler(nameof(TileDepthRangePass));
     base.renderPassEvent  = evt;
     m_DeferredLights      = deferredLights;
     m_PassIndex           = passIndex;
 }
 public RippleEffect_RenderPass(RenderPassEvent renderPassEvent, FilterMode filterMode, int blitShaderPassIndex)
 {
     this.renderPassEvent     = renderPassEvent;
     this.filterMode          = filterMode;
     this.blitShaderPassIndex = blitShaderPassIndex;
     m_TemporaryColorTexture.Init("_TemporaryColorTexture"); // You can name this anything you want
 }