예제 #1
0
        internal sealed override void Begin()
        {
            RC.BeginProfilingBlock("GBuffer pass");

            base.Begin();

            RC.SetRtvs(GBuffer, MyDepthStencilAccess.ReadWrite);
        }
예제 #2
0
        internal sealed override void Begin()
        {
            RC.BeginProfilingBlock("gbuffer pass");

            base.Begin();

            RC.BindGBufferForWrite(GBuffer);

            RC.SetDS(MyDepthStencilState.DepthTestWrite);
        }
예제 #3
0
        internal sealed override void Begin()
        {
            RC.BeginProfilingBlock("forward pass");

            base.Begin();

            Context.OutputMerger.SetTargets(DSV, RTV);

            RC.SetDS(null);
        }
예제 #4
0
        internal sealed override void Begin()
        {
            RC.BeginProfilingBlock("Highlight Pass");

            base.Begin();

            RC.SetDepthStencilState(MyDepthStencilStateManager.WriteHighlightStencil, MyHighlight.HIGHLIGHT_STENCIL_MASK);
            RC.SetBlendState(null);

            RC.PixelShader.SetConstantBuffer(4, MyCommon.HighlightConstants);
        }
예제 #5
0
        internal sealed override void Begin()
        {
            RC.BeginProfilingBlock("depth pass " + DebugName);

            base.Begin();

            RC.SetRS(DefaultRasterizer);

            Context.OutputMerger.SetTargets(DSV);

            RC.SetPS(null);
            RC.SetDS(null);
        }
예제 #6
0
        internal sealed override void Begin()
        {
            RC.BeginProfilingBlock("Highlight Pass");

            base.Begin();

            //Context.OutputMerger.SetTargets(DSV, RTV);

            RC.SetDS(MyDepthStencilState.OutlineMesh, 0xFF);
            //RC.SetDS(null);
            RC.SetBS(null);

            Context.PixelShader.SetConstantBuffer(4, MyCommon.OutlineConstants);
        }
예제 #7
0
        internal sealed override void Begin()
        {
            RC.BeginProfilingBlock("forward pass");

            base.Begin();

            Context.OutputMerger.SetTargets(DSV, RTV);

            RC.SetCB(4, MyRender11.DynamicShadows.ShadowCascades.CascadeConstantBuffer);
            RC.DeviceContext.PixelShader.SetSampler(MyCommon.SHADOW_SAMPLER_SLOT, SamplerStates.m_shadowmap);
            RC.DeviceContext.PixelShader.SetShaderResource(60, MyRender11.DynamicShadows.ShadowCascades.CascadeShadowmapBackup.SRV);

            RC.SetDS(null);
        }
예제 #8
0
        internal sealed override void Begin()
        {
            RC.BeginProfilingBlock("forward pass");

            base.Begin();

            RC.SetRtv(Dsv, Rtv);

            RC.AllShaderStages.SetConstantBuffer(4, MyRender11.DynamicShadows.ShadowCascades.CascadeConstantBuffer);
            RC.PixelShader.SetSampler(MyCommon.SHADOW_SAMPLER_SLOT, MySamplerStateManager.Shadowmap);
            RC.PixelShader.SetSrv(31, MyRender11.DynamicShadows.ShadowCascades.CascadeShadowmapBackup);

            RC.SetDepthStencilState(null);
        }
예제 #9
0
        internal sealed override void Begin()
        {
            RC.BeginProfilingBlock("forward pass");

            base.Begin();

            Context.OutputMerger.SetTargets(DSV, RTV);

            RC.SetCB(4, MyShadows.m_csmConstants);
            RC.Context.PixelShader.SetSampler(MyCommon.SHADOW_SAMPLER_SLOT, MyRender11.m_shadowmapSamplerState);
            RC.Context.PixelShader.SetShaderResource(60, MyShadows.m_cascadeShadowmapBackup.ShaderView);

            RC.SetDS(null);
        }
예제 #10
0
        internal sealed override void Begin()
        {
            RC.BeginProfilingBlock("MyDepthPass");

            base.Begin();

            RC.SetRS(DefaultRasterizer);

            // Only write depth
            Context.OutputMerger.SetTargets(DSV, (RenderTargetView)null);

            RC.SetPS(null);
            RC.SetDS(null);
        }
예제 #11
0
        internal sealed override void Begin()
        {
            RC.BeginProfilingBlock("MyDepthPass");

            base.Begin();

            RC.SetRasterizerState(DefaultRasterizer);

            // Only write depth
            RC.SetRtv(Dsv, null);

            RC.PixelShader.Set(null);
            RC.SetDepthStencilState(null);
        }
        internal sealed override void Begin()
        {
            RC.BeginProfilingBlock("StaticGlassPass");

            // Read-only state
            if (MyStereoRender.Enable && MyStereoRender.EnableUsingStencilMask)
            {
                RC.SetDepthStencilState(MyDepthStencilStateManager.StereoDepthTestReadOnly);
            }
            else
            {
                RC.SetDepthStencilState(MyDepthStencilStateManager.DepthTestReadOnly);
            }

            base.Begin();
        }
예제 #13
0
        internal sealed override void Begin()
        {
            RC.BeginProfilingBlock("GBuffer pass");

            base.Begin();

            RC.BindGBufferForWrite(GBuffer);

            if ((!MyStereoRender.Enable) && (!MyStereoRender.EnableUsingStencilMask))
            {
                RC.SetDS(MyDepthStencilState.DepthTestWrite);
            }
            else
            {
                RC.SetDS(MyDepthStencilState.StereoDepthTestWrite);
            }
        }
예제 #14
0
        public void BeginDepthOnly()
        {
            RC.BeginProfilingBlock("StaticGlassPass - Depth Only");

            base.Begin();

            // Read-write state
            if (MyStereoRender.Enable && MyStereoRender.EnableUsingStencilMask)
            {
                RC.SetDepthStencilState(MyDepthStencilStateManager.StereoDefaultDepthState);
            }
            else
            {
                RC.SetDepthStencilState(MyDepthStencilStateManager.DefaultDepthState);
            }

            RC.SetBlendState(null);
            RC.SetRasterizerState(null);
        }
        internal override void Begin()
        {
            base.Begin();

            RC.BeginProfilingBlock("Foliage pass");

            RC.SetPrimitiveTopology(PrimitiveTopology.PointList);
            RC.SetInputLayout(m_inputLayout);

            RC.AllShaderStages.SetConstantBuffer(MyCommon.FOLIAGE_SLOT, MyCommon.MaterialFoliageTableConstants);

            RC.SetRasterizerState(MyRasterizerStateManager.NocullRasterizerState);

            RC.VertexShader.Set(m_VS);
            RC.SetInputLayout(m_inputLayout);

            RC.SetRtvs(MyGBuffer.Main, MyDepthStencilAccess.ReadWrite);

            RC.SetDepthStencilState(MyDepthStencilStateManager.DefaultDepthState);
        }
        internal override void Begin()
        {
            base.Begin();

            RC.BeginProfilingBlock("Foliage pass");

            Context.InputAssembler.PrimitiveTopology = PrimitiveTopology.PointList;
            Context.InputAssembler.InputLayout       = m_inputLayout;

            RC.SetCB(MyCommon.FOLIAGE_SLOT, MyCommon.MaterialFoliageTableConstants);

            RC.SetRS(MyRender11.m_nocullRasterizerState);

            RC.SetVS(m_VS);
            RC.SetIL(m_inputLayout);

            RC.BindGBufferForWrite(MyGBuffer.Main);

            RC.SetDS(MyDepthStencilState.WriteDepthAndStencil, GrassStencilMask);
        }