void Awake() { drawerComponent = GetComponent <MeshBuilderDrawerComponent>(); dataExtents = new Extents(16, 4, 16); dataVolume = new DataVolume(dataExtents); FillData(dataVolume); var groundMesher = new TileMesher3D(); groundMesher.Init(dataVolume, 0, palette, cellSize, new TileMesher3D.Settings() { filledBoundaries = Tile.Direction.None, skipDirections = Tile.Direction.YAxis, }); Add(groundMesher, ground); if (useGroundNormalAlignment) { // builders[builders.Count - 1].AddAligner(cellSize); } var topGroundMesher = new GridMesher(); topGroundMesher.Init(dataVolume, GroundIndex, cellSize, 3, GridMesher.UVMode.Normalized); topGroundMesher.InitHeightMapScaleFromHeightAvgOffset(groundHeightMap, groundMaxHeight); Add(topGroundMesher, grass); var waterMesher = new GridMesher(); waterMesher.Init(dataVolume, WaterIndex, cellSize, 1, GridMesher.UVMode.NoScaling, new float3(0, -0.2f, 0)); Add(waterMesher, water); var rockMesher = new TileMesher3D(); rockMesher.Init(dataVolume, 1, palette, cellSize); Add(rockMesher, rock); foreach (var drawer in drawerComponent.Drawers) { drawer.StartBuilder(); } StartCoroutine(CompleteMesh()); }
void Awake() { builders = new List <BuiltMesh>(); dataExtents = new Extents(16, 4, 16); dataVolume = new DataVolume(dataExtents); FillData(dataVolume); var groundMesher = new TileMesher3D(); groundMesher.Init(dataVolume, 0, palette, cellSize, new TileMesher3D.Settings() { filledBoundaries = Tile.Direction.None, skipDirections = Tile.Direction.YAxis, }); Add(groundMesher, groundMeshFilter); if (useGroundNormalAlignment) { builders[builders.Count - 1].AddAligner(cellSize); } var topGroundMesher = new GridMesher(); topGroundMesher.Init(dataVolume, GroundIndex, cellSize, 3, GridMesher.UVMode.Normalized); topGroundMesher.InitHeightMapScaleFromHeightAvgOffset(groundHeightMap, groundMaxHeight); Add(topGroundMesher, groundTopMeshFilter); var waterMesher = new GridMesher(); waterMesher.Init(dataVolume, WaterIndex, cellSize, 1, GridMesher.UVMode.NoScaling, new float3(0, -0.2f, 0)); Add(waterMesher, waterMeshFilter); foreach (var built in builders) { built.Start(); } targetGrid = new LatticeGridComponent.VertexGrid(startGrid.Grid); groundModifier = new LatticeGridModifier(); grassModifier = new LatticeGridModifier(); }
void Awake() { drawerComponent = GetComponent <MeshBuilderDrawerComponent>(); dataExtents = new Extents(16, 4, 16); dataVolume = new DataVolume(dataExtents); FillData(dataVolume); var walkwayMesher = new TileMesher2D(); walkwayMesher.Init(dataVolume, 0, WalkwayFill, walkwayTheme, cellSize, new TileMesher2D.Settings { centerRandomRotation = true }); Add(walkwayMesher, walkway); var walkwayBgMesher = new GridMesher(); walkwayBgMesher.Init(dataVolume, WalkwayFill, cellSize, 3, GridMesher.UVMode.Normalized, new float3(0, -1f, 0)); walkwayBgMesher.InitHeightMapScaleFromHeightAvgOffset(groundHeightMap, groundMaxHeight); Add(walkwayBgMesher, walkwayBg); var waterMesher = new GridMesher(); waterMesher.Init(dataVolume, WaterFill, cellSize, 1, GridMesher.UVMode.NoScaling, new float3(0, -1.2f, 0)); Add(waterMesher, water); var wallMesher = new TileMesher2D(); wallMesher.Init(dataVolume, 0, WallFill, wallTheme, cellSize, new TileMesher2D.Settings() { emptyBoundaries = Tile.Direction.None }); Add(wallMesher, wall); foreach (var drawer in drawerComponent.Drawers) { drawer.StartBuilder(); } }
public Chunk(float3 pos, float3 offsetPos, Transform root, DataVolume data, CreationInfo info) { Data = data; originalPosition = pos; offsetPosition = offsetPos; Transform = new GameObject("chunk").transform; Transform.SetParent(root); Transform.position = pos; drawerComponent = Transform.gameObject.AddComponent <MeshBuilderDrawerComponent>(); var groundMesher = new TileMesher3D(); groundMesher.Init(data, 0, info.palette, info.cellSize, new TileMesher3D.Settings() { filledBoundaries = Dir.None, skipDirections = Dir.YAxis, }); Add(groundMesher, info.ground); var topGroundMesher = new GridMesher(); topGroundMesher.Init(data, GroundIndex, info.cellSize, 3, GridMesher.UVMode.Normalized); topGroundMesher.InitHeightMapScaleFromHeightAvgOffset(info.groundHeightMap, info.groundMaxHeight); Add(topGroundMesher, info.grass); var waterMesher = new GridMesher(); waterMesher.Init(data, WaterIndex, info.cellSize, 1, GridMesher.UVMode.NoScaling, new float3(0, -0.2f, 0)); Add(waterMesher, info.water); var rockMesher = new TileMesher3D(); rockMesher.Init(data, 1, info.palette, info.cellSize); Add(rockMesher, info.rock); }