《KillZone4:ShadowFall》DemoPostMortem

 


存到自己的微云里面,连接:http://url.cn/EcYTwc

(话说微云还是方便多了,在国内付费什么的都比较容易,速度也快,之前用的google drive和skydrive就是速度和付费太麻烦了。)

guerilla的lead tech coder带来的引擎方面在开发KZ4:ShadowFall时候的一些经验。

 

背景

guerilla并不是一个特别大的studio,而且现在除了kz4还在开发一个新的游戏(没有公布),所以在技术方面没有那么多的革新也是情理之中。

路还是踏实的一步步走比较好。

 

数据

一系列非常有用的数据:






 

并行性:传统的渲染,动画,物理高度并行之外,AI和逻辑也达到了%80都是并行的运行了,其并行计算趋势非常明显了。

CPU优化:guerilla通过处理thread contention获得了很多性能的提升,高层的优化优先,这个搞定了之后再进入底层优化比较好

渲染

 

  • deferred shading
  • HDR+LinearSpaceLighting
  • 没有点光源了,只有area lighting
  • render target很多是在内存里面overlap的,这个就是console开发的优势了
character数据:


vertex shader一些优化:
  • 根据shader来排序会提升性能
  • 使用normal/tangent+sign_bit来代表TBN矩阵
  • 低lod上面没有tangent space分量了
particle:未来会移动到compute shader来计算
post process:
  • 可能的话尽可能用小格式来处理,R11G11B10比FP16和FP32的性能要好非常多
  • 常用的一些技巧:低resolution,dynamic branch, 
reflection
  • 类似irradiance volume这样的加了很多采集周围光照信息的cube map,然后每个pixel采集周围的probe上面的cubemap信息来进行光照
  • 提到ray trace的做法,但是应该不是我们传统说的那个ray trace吧,但是又不像简单的local reflection,这里提到说是guerilla的秘密,包括:
    • temporal reprojection
    • hierarchical buffer
volumetric

  • low resolution buffer+bilateral filter
  • ray marching
  • 16层的participating media buffer&lighting buffer


 

 

posted @ 2013-06-12 19:18  爱生活,爱编程  阅读(201)  评论(0编辑  收藏  举报