예제 #1
0
        public override void Draw(ITexture texture)
        {
            if (texture == null)
            {
                return;
            }

            base.Draw(texture);

            var dev = Device.Get();

            dev.OutputMerger.BlendState = data.AlphaDarkenState;

            if (models.Display.LinearInterpolation)
            {
                shader.Run(data.Buffer, models.Display.ClientAspectRatio, GetWorldToImage(), models.Display.Multiplier, CalcFarplane(), models.Display.DisplayNegative,
                           texture.GetSrView(models.Display.ActiveLayer, models.Display.ActiveMipmap));
            }
            else
            {
                marchingShader.Run(data.Buffer, models.Display.ClientAspectRatio, GetWorldToImage(), models.Display.Multiplier, CalcFarplane(), models.Display.DisplayNegative,
                                   displayEx.FlatShading, texture.GetSrView(models.Display.ActiveLayer, models.Display.ActiveMipmap));
            }

            dev.OutputMerger.BlendState = data.DefaultBlendState;
        }
예제 #2
0
        public override void Draw(int id, ITexture texture)
        {
            if (texture == null)
            {
                return;
            }

            base.Draw(id, texture);

            var dev = Device.Get();

            dev.OutputMerger.BlendState = models.ViewData.AlphaDarkenState;

            if (models.Display.LinearInterpolation)
            {
                shader.Run(models.Display.ClientAspectRatio, GetWorldToImage(), CalcFarplane(),
                           texture.GetSrView(models.Display.ActiveLayerMipmap), helpTextures[id].GetSrView(models.Display.ActiveMipmap));
            }
            else
            {
                marchingShader.Run(models.Display.ClientAspectRatio, GetWorldToImage(), CalcFarplane(),
                                   displayEx.FlatShading, texture.GetSrView(models.Display.ActiveLayerMipmap), helpTextures[id].GetSrView(models.Display.ActiveMipmap));
            }

            dev.OutputMerger.BlendState = models.ViewData.DefaultBlendState;
        }