刷草的时候,使用Texture纹理,没有问题,但使用Mesh,就会刷不全
貌似刷到一定数量之后,之前刷的草就会消失,并且不可在游戏视图中看见
如果再把后面刷的草移除掉,之前刷的草又会再次显现出来
根据上面的情况,可以看出Unity对于草的数量是有限制的
虽说可以通过修改笔刷设置中的不透明度(Opacity)以及目标强度(Target Strength),来减少草的稀疏程度
但是这样达不到我们想要的,一大片茂盛的草原的效果
最后,经过一番折腾,发现了问题所在。
有两个关键参数:
细节分辨率(Detail Resolution)、每面片细节分辨率(Detail Resolution Per Patch)
它们的大小关系是负相关的,调大一个,另一个就会变小
使用Unity自带地形工具,创建出来的地形,其参数中的每面片细节分辨率和细节分辨率分别是32和1024,如此一来,Detail patches currently allocated的值就非常小,只有1024,也就是只能绘制1024个网格
我们将每面片细节分辨率从32适当缩小到8,可以发现Detail patches currently allocated增加到了16384
再将细节分辨率增加至2048,可以发现Detail patches currently allocated增加到了65536
这样就可以正常绘制草坪了
总结:默认的地形中,每面片细节分辨率过高,而细节分辨率过低,从而导致Detail patches currently allocated过低,所以在单位方块内无法绘制更多的细节。