public void TestGenerateBottomIslandHeightmap() { var gen = new IslandGenerater(new Random(123)); var map2 = gen.GenerateBottomIslandHeightmap(32); var island = map2.Copy(); gen.MakeIslandShape(island); Action <Array2D <float> > renderLines = delegate(Array2D <float> map) { Func <int, int, SlimDX.Vector3> getPoint = (x, y) => new SlimDX.Vector3(x, map[new Point2(x, y)], y); for (int x = 0; x < map.Size.X; x++) { for (int y = 0; y < map.Size.Y; y++) { TW.Graphics.LineManager3D.AddLine(getPoint(x, y), getPoint(x + 1, y), new Color4(0, 0, 0)); TW.Graphics.LineManager3D.AddLine(getPoint(x, y), getPoint(x + 1, y + 1), new Color4(0, 0, 0)); TW.Graphics.LineManager3D.AddLine(getPoint(x, y), getPoint(x, y + 1), new Color4(0, 0, 0)); } } }; engine.AddSimulator(new BasicSimulator(delegate { renderLines(map2); TW.Graphics.LineManager3D.WorldMatrix = Matrix.Translation(40, 0, 0); renderLines(island); })); }
public IMesh CreateMesh(int seed) { var r = new Random(seed); var gen = new IslandGenerater(r); var island = gen.GenerateIsland(r.Next(7, 20)); var mesh = c.BuildMesh(island); return(mesh); }
public void TestGenerateIsland() { var gen = new IslandGenerater(new Random(123)); var island = gen.GenerateIsland(20); var c = new VoxelMeshBuilder(); var mesh = c.BuildMesh(island); var e = new Entity(); e.Mesh = mesh; }
public void TestRender100Islands() { var s = new Seeder(123); var gen = new IslandGenerater(new Random(123)); var c = new VoxelMeshBuilder(); var scale = 25; var range = new Vector3(100, 10, 100) * (float)Math.Sqrt(scale); for (int i = 0; i < 20 * scale; i++) { var island = gen.GenerateIsland(s.NextInt(7, 20)); var mesh = c.BuildMesh(island); var e = new Entity(); e.Mesh = mesh; e.WorldMatrix = Matrix.Translation(s.NextVector3(-range, range).dx()); } }