level 5
KnIfER
楼主
大星球生成,首先有三大问题。
其一,网格生成算法。其二,碰撞如何解决。其三,材质的处理方法。
在现在我的尝试中,网格由典型的正二十面体-三角形细分法生成。将正二十面体投射到一个单位球体上面,也就是有人说的Icosphere(发明这个单词肯定是因为原来的Icosahedron太拗口了!)。初期尝试使用ProceduralMesh,发现影响帧率的主要是碰撞烘焙。把异步碰撞打开就可以了,流畅的很,可以生成更多三角形。
所以使用ProceduralMesh直接免去了更加深入的底层研究,哈哈哈。
材质么,不就是各种贴图么。大概也有人全部使用实时随机算法控制,但我认为那是没有灵魂的。
我的思路如下:
材质用数个tile+alpha遮罩的组合实现,tile又可分近、远大小不同的tile以在各个高度提供细节。同一张tile又可染上不同颜色,比如土壤tile,偏青色用于平原土壤,偏深绿色则用于森林土壤。
为了使材质与地形相符合,必须:使用高度图控制单位球体的形状,并使用与之相对应的图层遮罩控制各个tile的混合。
2019年01月30日 03点01分
1
其一,网格生成算法。其二,碰撞如何解决。其三,材质的处理方法。
在现在我的尝试中,网格由典型的正二十面体-三角形细分法生成。将正二十面体投射到一个单位球体上面,也就是有人说的Icosphere(发明这个单词肯定是因为原来的Icosahedron太拗口了!)。初期尝试使用ProceduralMesh,发现影响帧率的主要是碰撞烘焙。把异步碰撞打开就可以了,流畅的很,可以生成更多三角形。
所以使用ProceduralMesh直接免去了更加深入的底层研究,哈哈哈。
材质么,不就是各种贴图么。大概也有人全部使用实时随机算法控制,但我认为那是没有灵魂的。
我的思路如下:
材质用数个tile+alpha遮罩的组合实现,tile又可分近、远大小不同的tile以在各个高度提供细节。同一张tile又可染上不同颜色,比如土壤tile,偏青色用于平原土壤,偏深绿色则用于森林土壤。
为了使材质与地形相符合,必须:使用高度图控制单位球体的形状,并使用与之相对应的图层遮罩控制各个tile的混合。



