杀戮地带2的渲染技术(Rendering_Technology_Of_Killzone_2)

http://www.guerrilla-games.com/presentations/GDC09_Valient_Rendering_Technology_Of_Killzone_2.pptx

http://www.guerrilla-games.com/presentations/GDC09_Valient_Rendering_Technology_Of_Killzone_2_Extended_Presenter_Notes.pdf

一个老文章了,不过有一些细节很不错。

killzone2,开发历时4年。

DeferredShading

deferred shading现在过于普遍了,基本相关的介绍直接跳过。

开始guerrila尝试了light prepass,但是对于kz来说,没有那么大的需求来做light prepass,如果像cryengine和bungie的确是最后的光照比较复杂,有必要走light prepass类的pipeline,kz就没有必要,在这种情况下,light prepass的效率还低于传统的deferred shading,所以最后就用了传统做法。


kz2的gbuffer格式:


lighting accumulation比较特殊,也说明了kz2的lighting到达什么级别,是用来存储

  • indirect lighting,
  • static object的indirectlighting是放在light map中
  • dynamic object用的是spherical harmonics系数来存储间接光
  • reflection map:也就是environment map
indirect lighting only的一个图:

  • 在render lighting的时候,使用zcull, depth bound test和stencil来尽量减少lighting的区域

  • lighting的代码可以根据具体情况做一些简化,比如有的就不需要specular等
  • 使用stencil mask来标记完全在shadow中的pixel,这样可以skip lighting

  • 全屏的lighting的时候,也使用了depth bound test,这样去分几级的lighting可以进行lighting quality上的一些lod

shadow

  • soft shadow filter是poisson disk filter,这个现在都这样了。
  • 比较小的东西就不cast shadow,这个threshold可以per object的指定,也可以per light的指定
  • 使用camera view frustum的bounding sphere来做为shadow view frustum构建的依据,而不是针对camera view frustum本身,因为camera会转,根据camera frustum构建会造成有闪烁出现







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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值