Пример #1
0
        public void CropOverlayGrayOutAll()
        {
            var models = new Models(1);

            models.AddImageFromFile(TestData.Directory + "small.pfm");
            models.Apply();

            var crop = new CropOverlay(models);

            models.Overlay.Overlays.Add(crop);

            crop.Start     = null;
            crop.End       = null;
            crop.IsEnabled = true;

            var expectedColors = models.Pipelines[0].Image.GetPixelColors(LayerMipmapSlice.Mip0);

            for (var i = 0; i < expectedColors.Length; i++)
            {
                expectedColors[i] = expectedColors[i].Scale(0.5f, Color.Channel.Rgb);
            }

            var actualColors = GetColorAfterExport(models);

            TestData.CompareColors(expectedColors, actualColors);
        }
Пример #2
0
        public void CropOverlaySimple()
        {
            var models = new Models(1);

            models.AddImageFromFile(TestData.Directory + "small.pfm");
            models.Apply();
            var dim = models.Images.Size;

            var crop = new CropOverlay(models);

            models.Overlay.Overlays.Add(crop);

            // set up cropping
            crop.Start     = new Size3(1, 2, 0).ToCoords(dim);
            crop.End       = new Size3(2, 2, 0).ToCoords(dim);
            crop.IsEnabled = false;

            // nothing should change
            var expectedColors = models.Pipelines[0].Image.GetPixelColors(LayerMipmapSlice.Mip0);
            var actualColors   = GetColorAfterExport(models);

            TestData.CompareColors(expectedColors, actualColors, Color.Channel.Rgba, 0.0f);

            // enable cropping
            crop.IsEnabled = true;
            // gray out colors
            for (int i = 0; i <= 6; ++i)
            {
                expectedColors[i] = expectedColors[i].Scale(0.5f, Color.Channel.Rgb);
            }

            actualColors = GetColorAfterExport(models);
            TestData.CompareColors(expectedColors, actualColors, Color.Channel.Rgba);
        }
Пример #3
0
        public void CropOverlayLayers()
        {
            var models = new Models(1);

            models.AddImageFromFile(TestData.Directory + "cubemap.dds");
            models.Apply();
            var dim = models.Images.Size;

            var crop = new CropOverlay(models);

            models.Overlay.Overlays.Add(crop);

            // everything should be the same
            crop.Start     = Float3.Zero;
            crop.End       = Float3.One;
            crop.Layer     = -1;
            crop.IsEnabled = true;

            Assert.IsFalse(crop.HasWork);

            crop.Layer = 1;
            var refColors = new Color[][]
            {
                models.Pipelines[0].Image.GetPixelColors(LayerMipmapSlice.Layer0),
                models.Pipelines[0].Image.GetPixelColors(LayerMipmapSlice.Layer1),
                models.Pipelines[0].Image.GetPixelColors(LayerMipmapSlice.Layer2),
                models.Pipelines[0].Image.GetPixelColors(LayerMipmapSlice.Layer3),
                models.Pipelines[0].Image.GetPixelColors(LayerMipmapSlice.Layer4),
                models.Pipelines[0].Image.GetPixelColors(LayerMipmapSlice.Layer5),
            };

            // gray out all layers except layer 1
            for (int layer = 0; layer < 6; ++layer)
            {
                if (layer == 1)
                {
                    continue;
                }
                for (var index = 0; index < refColors[layer].Length; index++)
                {
                    refColors[layer][index] = refColors[layer][index].Scale(0.5f, Color.Channel.Rgb);
                }
            }

            TestData.CompareColors(refColors[0], GetColorAfterExport(models, 0));
            TestData.CompareColors(refColors[1], GetColorAfterExport(models, 1));
            TestData.CompareColors(refColors[2], GetColorAfterExport(models, 2));
            TestData.CompareColors(refColors[3], GetColorAfterExport(models, 3));
            TestData.CompareColors(refColors[4], GetColorAfterExport(models, 4));
            TestData.CompareColors(refColors[5], GetColorAfterExport(models, 5));
        }