http://blog.selfshadow.com/publications/s2012-shading-course/burley/s2012_pbs_disney_brdf_slides_v2.pdf
http://blog.selfshadow.com/publications/s2012-shading-course/burley/s2012_pbs_disney_brdf_notes.pdf
迪斯尼讲解他们在新的动画片里面《wreck it ralph》(无敌破坏王)里面使用的physically based lighting。
转变
一开始disney在<tangled>(《魔法奇缘》)中使用了基于真实物理模型的头发渲染,效果超级棒,使得disney大受鼓舞。
基于物理模型的头发渲染带来了丰富真实的观感,并且美术还能充分的控制,这使得disney决定在接下来的电影里面也开始使用基于物理模型的光照和材质系统。
学术界有大量的模型可以采用,但是那一个在实际的工业使用中能够展现令人信服的效果和效率呢?接下来disney展开了广泛的研究,在这个过程中disney开发了一个BRDF查看器,来把物理模型渲染出来,来获得直接的感觉。
在通过查看器研究和观察这些模型的过程中,disney收获很多。
同时disney也没有盲从学术的理论,首先是从真实的brdf着手,在真实的基础上,反过来审视理论,这里有一个很棒的项目,是http://www.merl.com/brdf/,它提供了一个真实材质的BRDF的数据库,里面包含了100种不同的典型材质:
里面每一个小图片很直接的把一个BRDF典型的特性都表现出来:
Diffuse
diffuse一般我们讲就是漫反射,disney认为它是光在材质上的subsurface scattering(光折射到材质中,进行散射,吸收等过程,最后再出来)。
相比之下,pixar认为除了subsurface scattering,由于材质表面粗糙,造成的颗粒间多次弹射也算。
这也是为何金属类的通常就不带diffuse部分了。
一般我们讲就是lambert模型,
实际上这也并不准确,在normal和视线倾向垂直的地方,fresnel造成更多的光线反射,少数的折射,这部分的diffuse应该是降低的。
这方面oren-nayar和hanrahan-krueger有模型更进一步的描述,这方面可以根据兴趣和需要进一步看一下:
其它部分。。。没有太多好说的,都是一些shading model和真实brdf的比较描述等。。。
disney主要使用的BRDF
设计brdf模型时候的一些原则:
- 参数要直观,而不能像physical paramter那样的抽象
- 参数尽可能的少
- 取值范围要简单,统一的是0到1,实际如果是很大很小的话,就自己来scale,但是取值一定要简单
- 参数如果需要的话,可以超越其应该属于的取值范围(hackable)
- 参数之间的组合需要robust和有道理的
这里
- specular是我们熟悉的specular color
- roughness和specular power表达类似的意思
- anisotropic:各向异性,在头发丝绸上广泛应用
- sheen:用于衣服的渲染,处理grazsing angle(normal和视线倾向垂直的情况)
- clearCoat:一个次specular,作为主specular的一个补充,这个和realtime physically based lighting说的secondary specular(一般使用envmap获得)不一样,是材质上的次specular
- diffuse会随着roughness的增加(或者说specular power的减少)而变强
- 会在fresnel强烈的地方变弱
《无敌破坏王》里的一些经验
- 由于使用了统一的材质BRDF,使得材质库变得简单的多
- 并且有良好的混合,美术可以从材质库里面选取一些需要的,迅速做出混合的新的材质
- 使用的image based lighting,具体的这个文章更详细:http://blog.csdn.net/ccanan/article/details/7647964
- 实时的所见即所得的材质BRDF编辑器:这个在游戏的材质编辑器里面倒是很常见
- 得益于稳定的物理模型,光照几乎没有什么返工