TheTechBehindDx11UnrealEngine"Samaritan"Demo

 

TheTechBehindDx11UnrealEngine"Samaritan"Demo_第1张图片

 

link:

http://www.nvidia.com/content/PDF/GDC2011/Epic.pdf

 

 

 

 

deferred shading

轻描淡写的提了一下,实在是在业界已经普及了,epic大肆宣扬就没意思了,只是更新下大家的knowledge base,unreal engine 3现在也defer了。

 

 

 

short hair

 

使用camera aligned triangle strip, 然后配上贴图,很类似grass的渲染。

重点在alias的处理,在单纯的1x buffer怎么做都是达不到高质量:

alpha test:alis

alpha blend:sort, fogging, dof

alpha to coverage:problems with many layers

最后选择是在4xmsaa buffer上做alphatest,然后resolve,可以说是super sample anti alias

 

 

per fragment AA

TheTechBehindDx11UnrealEngine"Samaritan"Demo_第2张图片

MSAA会出现左边白边的问题,原因是边缘处depth远近不一样,而必须有一个值。

unreal使用stencil把这个部分标出来,然后先做perpixel shading,这个过程stencil被全写过的部分就可以无视,被半写过部分就是可能白边的地方,再做一次perfragment shading就好了。

的确是比较不错地办法。

 

 

subsurface scattering

TheTechBehindDx11UnrealEngine"Samaritan"Demo_第3张图片

效果很棒,牵涉的论文读起来要费挺多的事情,pdf里面martin也就淡淡的一句,screenspace搜集lighting contribution,随机的搜集周围16个sample。

 

 

 

 

Reflection

 

使用billboard+raytrace的方式来完成。

平面反射,也就是把camera相对于反射面翻转,然后render场景的方法只能适合水或者单纯的平地面,对于复杂形状不行。

unreal的方式非常针对夜晚情形,只反射一些亮的东西,把这些东西做成billboard在反射中使用。

使用raytrace来sample反射的内容,由于是billboard,所以计算还是相对轻量级。

 

至于各种奇怪的反射,拉长条的,blurry的,就在这个算法下把reflection ray稍加变动就可以。

 

reflection shadow, epic做的真是够纠结的,

static是用一个offline生成的存在volume texture里的distance field

dynamic是用传统planar reflection的方法用反射camera画depth,根据depth的每一个texel来画quad产生final mask。

final mask与billboard一起作用营造出有shadow的反射。

这里的消耗感觉有点惊人。

 

 

 

Bokeh

 

TheTechBehindDx11UnrealEngine"Samaritan"Demo_第4张图片

估计这届gdc之后最明显普及的一个东东就是这个了,背景中亮片的效果。

 

基本算法还是brightpass检测,在亮的pixel上画quad或者类似的一些形状。

epic的dof solution还包括近景和远景的blur,所以使用了3个layer来区分,避免出现artifact。

TheTechBehindDx11UnrealEngine"Samaritan"Demo_第5张图片

 

由于这个效果是不需要准确的效果,所以low resolution的方案是肯定要使用的了。

 

 

其他,

文中提到一个能量守恒(energy preserving),就是对光照模型做一些矫正,保证radiance和irradiance能量上一致,这。。。玩家的火轮眼真的有能力识别这个么?

 

screen space subsurface scattering里面reference有点多,需要慢慢看一下,但是由于这个和手头工作相去有点远,所以优先级要降低了。

 

 

 

其实看下,这个demo里面的技术也没有太多特别的,但是拿出来就是震撼。

再次诠释了游戏发展至今绝不是一条腿可以跑的,tech,art,design三者都强的才是王者。

carmack那个单纯靠技术和单人能力就能杀出一条血路的时代已经过去了。

 

反射的部分是我的最爱,的确很不错。


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

你可能感兴趣的:(TheTechBehindDx11UnrealEngine"Samaritan"Demo)