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回来
- heightmap based
- geometry mipmapping
- procedural vegetation&mesh spreading
- road system:编辑road,path,小溪
- portals
- occluders
- lod
- 小物件的管理