在上一章中,我们修复了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代码