BattleField 3和NeedForSpeedTheRun中的渲染技术

http://publications.dice.se/attachments/BF3_NFS_WhiteBarreBrisebois_Siggraph2011.pptx

frostbite engine(寒霜引擎)


系列引擎在battle field以外的知名游戏上<need for speed:the run>开始应用。

关注dice很长时间了,学习到很多东西,很欣喜的看到frostbite从<battle field:bad company>时候的偶有亮点(建筑地形毁坏)到现在在battlefield3中成为的图形效果新标杆,可以和CryEngine3的效果一较高下,并且在销量上也取得了不俗的成绩,可谓双重胜利。


现在使用frostbite2制作了<need for speed:the run>


本文介绍在frostbite2在两款游戏上技术的应用。

bokeh blur

这个效果不太感兴趣,在ce3,ue3和frostbite,还有n多其他的游戏paper里都有说。

这里说的一点挺好,就是blur,有的是不能separate的,那么这个计算量就是:O(n*n),有的是可以separate的,比如,那么计算量是O(n).

可以separate的包括gaussian blur,box,skewed box。

ZCull Reverse

这个是一个挺有意思的技巧,一般在deferred lighting中做point lighting的时候,是使用front face和back face各render一个pass的方式,使用stencil来确定point light sphere影响的区域。

这里介绍一个方法是把zcull的compare方式变成GreaterEqual,这样和正常的方法上在point light起作用,比如:


A和B的情况,是否reverse是等价的(一个在A上省一个在B上省),但是C的话就是reverse的好多了。


使用csm,也可以这么做,画一个cube来做一个cascade,用stencil标记前一个cascade render过的pixel,挺不错的。


MinMaxShadowMap

这里说的问题是shadow map mask问题,把需要soft shadow(也就是shadow和unshadow部分交界的地方)和纯的shadow和unshadow的地方。

这里的算法是:

  • 使用hard shadow map画第一遍
  • downsample,把需要soft shadow的地方和hard的地方以不同的alpha保存
  • 使用alpha test来更新stencil
  • 使用stencil test来跳过不需要soft shadow的地方,进行pcf

Chroma sub-sampling
并不是一个新的概念,jpg压缩中常常使用的,就是把颜色分成luminance和chroma两个部分,全精度存储luminance,低精度存chroma。
具体可以看wikipedia的连接:link
这样的压缩之后,post process 的bandwidth消耗降为1/4


Temporally-stableScreen-Space Ambient Occlusion

frostbite2提供了两种dynamic ao:

  • 普通的ssao给中低端机器
  • hbao给高端机器
质量对比很明显了:
HBAO:

SSAO:


ssao的sample方式是volumetric occlusion的line的方式,效率比较好。
这里主要是说了blur的方式,把4个纯色的ao的pixel信息pack到rgba里面,这样一个9x9 gaussian blur会被降到3个horizontal tap和5个vertical tap,效率对比很明显:高于4:1的一个差距




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值