`
dogasshole
  • 浏览: 845197 次
文章分类
社区版块
存档分类
最新评论

Uncharted 2: HDR Lighting

 
阅读更多

http://www.gdcvault.com/

这里找吧,非常巨大的pptx。

基本3各部分,gamma&tonemapping,ssao,rendering pipeline,前面很枯燥,后面高潮迭起。


gamma&hdr

这部分看得比较枯燥,直犯困,用的时候直接参考下吧。

基本概念就是图片中存储的数据(rgb的亮度值)和monitor输出的值是有一个函数关系的,并不是一致的。

所以要进行一些处理才能达到gamma correct。

这个处理可以有硬件支持,srgb系列,可以应用到texture和rendertarget。

hdr那部分也看得很无趣,觉得有用的就是filmic tonmapping本来是很多texture sample和log等计算,但是有个哥们给出一个几个乘法和除法就ok的估计值,也很好。


ssao

热门一段时间了,在被阴影覆盖的地方,可以显著提高画面质量。

无normal版本是球状detect occlusion。

后面cryteck开始基于deferred shading的,在normal基础上使用半球来做,这样normal map也有ssao效果在里面。

uncharted2用volume来做探测。

一些相关optimize&polish

  • 1/4 size的depth buffer
  • 横竖膨胀一下(这让我想起来crysis的object motion blur也是有膨胀dilate这一步的)
  • blur

然后depth不连续的地方等等会有一些问题,但是一般都是业内人士才看得出来,玩家看不出来就ok,就不多费力气了(nice point)

ssao是spu上做的,6个一起1ms搞定,spu威武,可以预见larabee是大有可为的。


rendering pipeline

很cool的pipeline。

spu上做了标准的vertex processing, ssao, full screen lighting。

uncharted1的时候 deferred lighting就是分tile做的,可能就是spu做的,或者为spu埋下伏笔。

opaque pass是rgbm的msaa2x,然后到translucent pass时候resolve到fp16来做。

translucency pass是1/4 buffer做的。

postfx一部分是spu做的,distortion和ui是gpu上做的,

shadow上不只是sunlighting shadow,还包括spotlighting shadow。

后面还说到了spu上做ambient cube map,里面图上也有lightmap的痕迹,所以可能是lightmap+irradiance volume都有的。

然后是naughty dog的最high的底层优化,这个细节就跳过吧,基本过程就是读硬件spec,instrisic代码细节,分析代码,然后实践。

底层优化过之后都是性能翻倍的结果。


naughty dog无愧为业界底层之王。spu抗下gpu半壁江山,牛逼。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics