[gpu pro]《狂野西部:生死同盟》的渲染技术

CallOfJuarez:BoundInBlood,中文名是《狂野西部:生死同盟》,很棒的一个渲染技术回顾。

开发商是techland,以前没太听过,查了下是建立于1991年,现在还在开发nextgen的游戏,not bad!

有自己的engine,还在不停地发展。

这篇文章非常精彩,紧凑含金量高。

deferred shading

这里techland认为deferred shading最大的好处就是可以简化render pipeline,这一点非常的赞同。

在这个基础上带来多光源的益处,更容易做的decal,ssao等等。

pipeline

开始第一步构建一个用于ambient lighting的texture,32x32,sample的时候是使用normal和sky的dot值来sample。

里面构建的东西就是各种自定义了,这个完全可以自己项目发挥。

cloud mask构建,用于render cloud投在地上的shadow。

gbuffer


techland在接下来的很多地方使用了quarter buffer,所以将depth buffer downsample到1/4。


ambient lighting(simple GI):

techland实现了一个很简单的gi,在1/4buffer上面render物件的简化模型(box,sphere,cone。。。),使用min/max blending。

并且在1/4buffer渲染了一个volumetric fog。

一个简单的shadowmap构建在1/4 buffer上面,放在r通道,另外两个通道是cloud shadow和ssao。

ssao就是最简单的那种,半球采24sample。

然后这个1/4buffer进一步downsample(并且带着blur)到1/16,为后面particle用。

lighting pass:

  • linear space lighting
  • rgba16f on pc, 7e3 on xbox360
  • shadow:
    • 4个cascade
    • cascade之间有smooth
  • ssao和cloud使用bilateral upsampling apply回来
rain:使用类似shadow map的方式来计算雨的遮挡
tonemapping有eye adapt,->最后转回正常的color space->color grading。

其他:
terrain:
  • heightmap based
  • geometry mipmapping
  • procedural vegetation&mesh spreading
  • road system:编辑road,path,小溪
geometry:
  • portals
  • occluders
  • lod
  • 小物件的管理
简而言之,对于做项目的程序员来说,这个是一个很不错的可以对照来看看自己引擎如何的文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值