public void Test2MaterialsUnion() { var mat1 = new DCVoxelMaterial() { Texture = DCFiles.UVCheckerMap10_512 }; var mat2 = new DCVoxelMaterial() { Texture = DCFiles.UVCheckerMap11_512 }; var mesh1 = new DensityFunctionHermiteGrid( v => DensityHermiteGridTest.SphereDensityFunction(v, 2, new Vector3(2)), new Point3(20, 20, 20), v => mat1); var mesh2 = new DensityFunctionHermiteGrid( v => DensityHermiteGridTest.SphereDensityFunction(v, 2, new Vector3(2)), new Point3(10, 10, 10), v => mat2); var grid = new UnionGrid(mesh1, mesh2, new Point3(1, 1, 1)); surfaceRenderer.CreateSurface(grid, Matrix.Translation(0, 0, 0)); }
private void testDensityFunction(Func <Vector3, float> densityFunction, Point3 dimensions) { AbstractHermiteGrid grid = null; grid = new DensityFunctionHermiteGrid(densityFunction, dimensions); var terrGen = PerformanceHelper.Measure(() => { grid = HermiteDataGrid.CopyGrid(grid); }); var testEnv = new DualContouringTestEnvironment(); testEnv.Grid = grid; testEnv.AdditionalText = "Terrain to Hermite: " + terrGen.PrettyPrint(); testEnv.AddToEngine(EngineFactory.CreateEngine()); }
public TerrainLodEnvironment() { tree = new LodOctree(); var size = 32 * (1 << 10); rootNode = tree.Create(size, size); //octreeOffset = new Vector3(0, size, 0); octreeOffset = new Vector3(0, 0, 0); density = VoxelTerrainGenerationTest.createDensityFunction5Perlin(17, size / 2); //density = v => DensityHermiteGridTest.SineXzDensityFunction(v, 1/5f, size/2, 3); density = densityFunction; densityGrid = new DensityFunctionHermiteGrid(density, new Point3(size, size, size)); minNodeSize = 32; }