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(); }