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-stable Screen-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的一个差距





原文链接: http://blog.csdn.net/ccanan/article/details/7089889

你可能感兴趣的:(BattleField 3和NeedForSpeedTheRun中的渲染技术)