4-15 优化调整

  在上一章中,我们修复了所有斜面与阶梯面之间存在破面的问题。现在我们就完成了使用一张彩色噪点图,对地图中每个顶点,通过控制参数,控制其扰动的强度和范围,增加地图细节的功能。仔细观察我们现在生成的地图,每个顶点的扰动强度似乎过大了,虽然扰动强度大一些,会使每个地图单元变化更加明显,但是我们并不想让地图单元偏离太多。毕竟我们需要通过比较精确的网格来判断,我们正在编辑哪个地图单元。如下对比图:

  下图是扰动强度从小到大的效果,我们可以发现,现在地图单元的扰动强度设置为5,似乎有点太大了。

  我们将扰动强度降低到4,让所有底图单元在有一定随机的情况下又不会偏移太多,使每个顶点在XZ平面内的最大位移不超过 $\sqrt {32} \approx 5.66$。代码如下:

HexMetrics.cs
1
2
3
4
5
6
public static class HexMetrics
{
public const float cellPerturbStrength = 4f;


}

  另一个可以调整的参数是地图单元中自身和颜色混合区域的比例。如果我们增大这个值,地图单元中六边形的区域就会变得更大一些。这给未来的内容留下了更多空间。下图是调整这个比例的效果:

  将这个参数增大到0.8,让六边形的面积占比更大一些,代码如下:

HexMetrics.cs
1
2
3
4
5
6
public static class HexMetrics
{
public const float solidFactor = 0.75f;


}

  最后,现在的一个单位高度位5个Unity中的单位,每一级之间的高度差比较大。当我们检查网格生成是否正确时很方便,但这一步我们现在已经完成了,所以让我们把它减少到3。代码如下:

HexMetrics.cs
1
2
3
4
5
6
public static class HexMetrics
{
public const float elevationStep = 3f;


}

  剩下两个可调整参数是扰动强度和每一级阶梯的步长,这两个参数已经比较符合我们的预期,保持不变。
  至此我们就完成了对地图整体效果的调整。在接下来的章节中,我们将会创建尺寸更大的地图,并且添加更多的地图编辑器功能。

Github代码