|
描述: LOD地形,PS1.4 BaseTex * 4 + AlphaMap + LightMap
图片:

描述: LOD地形,固定管线 BaseTex * 2 + AlphaMap + LightMap
图片:

地形网格: 地形的网格可以使用高度图来生成,也可用不规则的Mesh来组成 (1)整块地形 整个地形放在一个VB里,在CPU端做完VFC、LOD等等剔除三角形的工作后一次性提交到GPU,只需一次DIP调用,需要提前分配好足够的空间。 (2)分片地形 将地形分成小块,块与块之间重复连接的边,每一个块一个VB,LOD时有一组IB,相同等级的VB共享相同的IB,先做VFC等剔除分片的工作后渲染显示的分片,需要多次DIP。
地形纹理: (1)整张铺满 整个地形用一张较大的纹理铺满,地表之间的过度可以预先渲染,也可以实时的用Alpha图混合几层纹理。同理,光照图和Alpha图也是一张铺满。这种方式的缺点是地表细节不高,大地形需要大纹理(一般至少要1024x1024以上)。 (2)分片纹理 在分片地形中,每一个地形块分配几张纹理(地表纹理、光照图和Alpha图),分片之间可以共享一些相同的纹理。这种方式效果好,但是渲染时需要切换纹理(为了减少切换纹理次数,可以做预先的排序),纹理的数量也较多。 (3)整张铺满 + 细节纹理 结合了上述两种方法,在细节处分配小纹理,整体用一张铺满。细节图与整图之间的过度只能实时混合,需要两层以上的纹理坐标。
地表过度: (1)顶点过度 使用顶点中的Alpha值来混合两层纹理,在使用LOD的时候会出现问题(除非根据Alpha值预先处理过三角形)。 (2)预渲染过度 在载入地形的时候将过度纹理预先渲染好,使用时只需贴上一张纹理就行(使用分片地表时会增加纹理的数量)。 (3)Alpha图过度 使用Alpha贴图混合几层纹理,如果Alpha贴图使用四个通道,那可以用来混合多层贴图(需要PS的支持)。如果使用分片地形,一个分片的范围很大,且在这个范围内需要有很多不同地表的过度,那就需要同时绑定两张以上的纹理,如果超过四种就需要另外添加Alpha贴图。
地表光照: (1)顶点光照 将预先计算好的光照加到顶点中,问题同顶点过度。 (2)光照贴图 预先计算好的光照图在混合纹理的最后一层乘进去。
如果要进行动态载入,使用分片地形的方法较好,所有的纹理都要分片。
|
一共有 2 条评论
其他的操作只要实际使用中有效果那就用吧,不用拘泥与形式
是不是现在大多数游戏都用的是分片纹理?有没有使用不同大小、旋转和缩放纹理的?