Ejemplo n.º 1
0
        public static void ResizeMarkIfInsideCascade()
        {
            if (MarkIfInsideCascade == null || MarkIfInsideCascade.Length == 0)
            {
                return;
            }

            var desc = MyPipelineStates.GetDepthStencil(MarkIfInsideCascade[0]).Description;

            if (MarkIfInsideCascade.Length < MyRenderProxy.Settings.ShadowCascadeCount)
            {
                MarkIfInsideCascade = new DepthStencilId[MyRenderProxy.Settings.ShadowCascadeCount];
            }

            for (int cascadeIndex = 0; cascadeIndex < MarkIfInsideCascade.Length; ++cascadeIndex)
            {
                desc.StencilWriteMask             = (byte)(0x01 << cascadeIndex);
                MarkIfInsideCascade[cascadeIndex] = MyPipelineStates.CreateDepthStencil(desc);
            }
        }