[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



  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值