The Art and Technology of Whiteout

本文详细介绍了SIGGRAPH07中关于《白出》的技术实现细节,涵盖PRT光照环境、SH系数环境光投射、PRT蒙皮、光照卡片等高级效果,特别强调了冰面渲染技巧及褶皱效果的实现。

http://developer.amd.com/media/gpu_assets/ArtAndTechnologyOfWhiteout(Siggraph07).pdf

挺不错的文章,siggraph07的,涉及了很多比较高端的效果。

但是也有很多没啥意思的,直接跳过,挑好的来:


Lighting Environment

1, PRT

存在vertex里面的信息,包括

  • sub surface scattering
  • bounced lighting

2, 环境光投射到SH系数:4级系数(似乎有点多,其他的都用3级),保留低频信息。

之前一个版本用的是irradiance volume,但是这次升级到动态构建cubemap然后动态投射到SH系数,最后使用。(好大气)

3,PRT skinning

和normal map一样,tangent_to_model矩阵需要跟着skinning matrix旋转。

PRT的SH 系数也要跟着skinning matrix旋转,但是最后以视觉效果为准,不旋转但是看着也很赞,就算了。

4,Lighting cards

dynamic cube map精度太低64*64的。

所以很小的光源会出问题。

这样就人为地在构建cube map的时候放一些大的lighting card,来代替小光源,这样一切和谐多了。

5,冰的渲染,截图很赞:

冰的渲染要包括:

  • 反射
  • 折射
  • subsurface scattering
  • 和雪比较好的结合,还有背后的depth信息要比较好

解决方案:

  • 反射比较hack,实际应用中某些情况下有可能,就是算冰面和boundingbox相交,相交的话就加一些红色(主人物的颜色)。
  • refraction和distortion的做法基本一致,计算sample back buffer的uv,然后sample就可以
  • depth和refraction,这个是多层material做法,在tangent space计算eye direction,偏移出一个新的uv,sample背后物体的texture(比如是岩石的texture)。结合parallax mapping,效果更好。


particle的volume rendering是亮点,可惜前面文章说过了。。。


衣服的褶皱效果大赞

基本思想是判断出一个fragment这里的褶皱程度,然后sample一个褶皱的nromalmap,做lerp。

至于褶皱程度怎么做,里面提供一个做法是dx10的geometryshader看vertex的triangle呗压缩多少(多的话褶皱就大)。

实际应用中,artist打上标记,然后从animation中读取数据应该也是可以完成的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值