您的位置:首页 > 其它

[gpu pro]矿工战争的可破坏volumetric地形系统

2013-02-16 14:28 162 查看


<miner wars>(矿工战争)是一个太空和地下shooter game,地形方面非常的灵活任意,可以破坏,这篇文章就是介绍他们的技术。
minerwar选取了voxel作为地形的表达方式,有料有亮点。

voxel化:使用line check的方式进行3d模型的voxel化,就是一个line射过去,如果碰到一个三角形,那么就开始填充voxel的模式,再碰到一个triangle,就是不填充voxel的模式,line一直前行,就完成了一条voxel的扫描。

内存:voxel表示方法类似稀疏矩阵,首先是以8x8x8voxel为一个单位(data cell),然后只存不是全empty或者全full的
material首先在数据上做一个限制,就是避免出现突变型的材质变化,数据分布比较均匀,然后使用RLE压缩方法来压缩
voxel triangle用于collision detection,放在一个fifo cache里面,update on dirty

polygon化:minerwar是使用voxel作为raw data,最终的用于render的还是triangle,在初始化和地形发生改变的时候,会做一次polygonize
polygonize是以一个8x8x8的data cell为单位(叫做render cell),也就是64x64x64voxel为单位做,一个rendercell有其固定的vertex buffer,需要polygonize的时候就进行分配和创建
具体的polygonize的细节没说

材质的多向投射:使用的方法名字是tri-planar,就是根据normal的方向进行选择,具体代码有点意思:


处理texture tiling的问题:texture tiling的时候就会有比较不好看的效果(魔兽世界里面这种情况就比较多)处理的方式是随着距离拉远的时候,降低tiling数量
lod:lod是有的,处理过渡的方法是低高lod都画,然后blend
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: