MyException - 我的异常网
当前位置:我的异常网» 综合 » [gpu pro]矿工战事的可破坏volumetric地形系统

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

www.myexceptions.net  网友分享于:2013-02-20  浏览:0次
[gpu pro]矿工战争的可破坏volumetric地形系统

<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



文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有