public void TestRenderIsland() { var dirtMaterial = new VoxelMaterial(); dirtMaterial.Texture = TW.Assets.LoadTexture("GrassGreenTexture0006.jpg"); var size = 20; var island = new ArrayFiniteVoxels(new Point3(size, size, size)); island.NodeSize = 0.25f; for (int i = 0; i < size; i++) { for (int j = i; j < size - i; j++) { for (int k = i; k < size - i; k++) { island.SetVoxel(new Point3(j, -i + size - 1, k), dirtMaterial); } } } var c = new VoxelMeshBuilder(); var mesh = c.BuildMesh(island); var e = new Entity(); e.Mesh = mesh; }
public void TestRenderEmptyVoxel() { var dirtMaterial = new VoxelMaterial(); dirtMaterial.Texture = TW.Assets.LoadTexture("GrassGreenTexture0006.jpg"); var island = new ArrayFiniteVoxels(new Point3(1, 1, 1)); var c = new VoxelMeshBuilder(); var mesh = c.BuildMesh(island); var e = new Entity(); e.Mesh = mesh; }
public IFiniteVoxels GenerateIsland(int size) { var mat = new VoxelMaterial(); var map = GenerateBottomIslandHeightmap(size); MakeIslandShape(map); var max = 0f; for (int x = 0; x < map.Size.X; x++) { for (int y = 0; y < map.Size.Y; y++) { var val = map[new Point2(x, y)]; max = val > max ? val : max; } } var ret = new ArrayFiniteVoxels(new Point3(map.Size.X, (int)Math.Floor(max) + 1, map.Size.Y)); for (int x = 0; x < map.Size.X; x++) { for (int y = 0; y < map.Size.Y; y++) { var val = map[new Point2(x, y)]; for (int i = -(int)val; i < -2; i++) { ret.SetVoxel(new Point3(x, i + ret.Size.Y - 1, y), mat); } } } return(ret); }