大地形的优化
D3D之大地形的优化
先放图吧。介绍一下:
1024*1024格子,二百万面,带实时的九层地表纹理混合及法线运算。全网格没有用LOD。
网格查看:
在游戏中,大场景地形往往是一个效率的瓶颈。在这方面。我最近吃了不少苦,研究了不少资料。什么四叉树,LOD,地表纹理混合。等等。
由最初的雏形至如今的高效地形,由使用LOD到全网格,由GPU的地表高度图采样计算地表纹理到一次性填充所有顶点BUF。每一步都经过反复测试推敲。终于达到能接受的情况。
现在做一下总结:
1。顶点BUF的优化:千方百计减少顶点格式的大小,最好只缩减为XYZ
2。充会利用GPU来进行多层纹理混合和阴影计算。如果能利用GPU进行VertexTexture Fetch,最好使用。
3。对地形的大小进行合理划分。减少Batch与单Batch的内存量此消彼长,要多测试。
4。不进行LOD的原因是因为使用LOD会导致CPU的工作过大。要想尽一切办法减小CPU工作量。
5。不对顶点BUF进行逐帧的LOCK,UNLOCK