3-12 SSF类型的变体
在上一章中,我们完成了SSF
类型的三角形连接区域阶梯化,不过SSF
类型还存在两种变体,如下图所示:
之前的普通SSF
连接类型中,两个连接类型为Flat的地图单元,它们相较另一个地图单元,都会高出一个单位。变体的情况其实是正好反过来的。两个连接类型为Flat的地图单元,比另外一个地图单元,都低一个单位,这样也能组成SSF
形式的连接。那么我们就这种情况,在TriangulateCorner
方法中进行判断,如果符合SSF
变体的情况,我们也试用阶梯化三角形连接区域进行构建。代码如下:
1 | private void TriangulateCorner( |
仔细观察代码,当下方和右侧的两个地图单元连接关系为Flat时,我们就要对左侧的地图单元三角形连接区域进行梯形构建。相反的另一种情况也类似。
现在,两个相邻地图单元高度相差1的话,他们之间的矩形连接区域和三角形连接区域,视觉效果都完全符合预期。现在的问题还存在于两个相邻地图单元高度差大于1的情况。他们之间的三角形连接区域还是使用之前的方式。在下面的章节中,我们将会一步一步来解决这些问题。