在上一章中,我们修复了cliff-slope-slope(CSS)
和slope-cliff-slope(SCS)
两种连接类型种产生破面的问题。这样的问题。破面的问题同样也存在于cliff-cliff-slope
连接类型中。
修复这个破面问题与上一章修复CSS
和SCS
连接类型破面的问题思路相同。在TriangulateCornerTerracessCliff
方法的最后一个else
中,不再让分界点进行扰动即可。代码如下:
HexMesh.cs1 2 3 4 5 6 7 8 9 10 11 12 13 14
| private void TriangulateCornerTerracesCliff( Vector3 begin, HexCell beginCell, Vector3 left, HexCell leftCell, Vector3 right, HexCell rightCell) { … else { AddTriangleUnperturbed(Perturb(left), Perturb(right), boundary); AddTriangleColor(leftCell.color, rightCell.color, boundaryColor); } }
|
同理,再起镜像位置的TriangulateCornerCliffTerraces
方法中也不再对分界点进行扰动。代码如下:
HexMesh.cs1 2 3 4 5 6 7 8 9 10 11 12 13 14
| private void TriangulateCornerCliffTerraces( Vector3 begin, HexCell beginCell, Vector3 left, HexCell leftCell, Vector3 right, HexCell rightCell) { … else { AddTriangleUnperturbed(Perturb(left), Perturb(right), boundary); AddTriangleColor(leftCell.color, rightCell.color, boundaryColor); } }
|
这样我们就修复了所有斜面和阶梯三角形连接区域之间的破面。在下一章中,我们将会对地图整体进行参数调整,使地图看起来更加自然,为接下来的功能做准备。
Github代码