示例#1
0
 public VolumeView(ModelsEx models) : base(models)
 {
     smooth = new SmoothVolumeShader(models);
     cube   = new CubeVolumeShader(models);
     emptySpaceSkippingShader = new EmptySpaceSkippingShader();
     cubeSkippingShader       = new CubeSkippingShader();
     displayEx    = (RayCastingDisplayModel)models.Display.ExtendedViewData;
     helpTextures = new HelpTextureData[models.NumPipelines];
     textureCache = new ImageModelTextureCache(models.Images, Format.R8_UInt, true, false);
 }
        private void TestShader(string filename)
        {
            var img     = IO.LoadImageTexture(TestData.Directory + filename);
            var helpTex = new Texture3D(img.NumMipmaps, img.Size, Format.R8_UInt, true, false);
            var tmpTex  = new Texture3D(img.NumMipmaps, img.Size, Format.R8_UInt, true, false);

            var s = new CubeSkippingShader();

            s.Run(img, helpTex, tmpTex, LayerMipmapSlice.Mip0, new UploadBuffer(256));
            var shaderColors = helpTex.GetPixelColors(LayerMipmapSlice.Mip0);
            var shaderValues = new int[img.Size.Product];

            for (int i = 0; i < shaderValues.Length; i++)
            {
                shaderValues[i] = (int)(shaderColors[i].Red + 0.5);
            }

            var expectedValues = CalcValues(img);

            for (int i = 0; i < shaderValues.Length; i++)
            {
                Assert.AreEqual(expectedValues[i], shaderValues[i]);
            }
        }
 public void Compile()
 {
     var s = new CubeSkippingShader();
 }