physically based shading@tri-ace

tri-ace studio,日本的一个工作室,<星海>的开发商,多次在siggraph上做presentation,内力深厚。

这个paper是tri-ace在“SIGGRAPH 2010 Course: Physically BasedShading Models in Film and Game Production”上的一个。

links:

http://renderwonk.com/publications/s2010-shading-course/gotanda/slide_practical_implementation_at_triace.pdf

http://renderwonk.com/publications/s2010-shading-course/gotanda/course_note_practical_implementation_at_triace.pdf


这个video相信很多人都看过,就是tri-ace的杰作:

<!--more-->


----------------------------------------------------------------------------------------------------------------

传统的blinn phong模型:



这里谈到fresnel的物理意义的一些解释,关键是里面参数的含义,f0(fresnel coefficient)是指viewDir与lightDir在成0度时候与90度时候的比值,在schlick的公式中可以明显的看到这一点。

f0是一个和材质物理属性相关的系数:


这里的n是refractive index,这里可以看看wiki上的解释,http://en.wikipedia.org/wiki/Refractive_index,其实是中学时候学的一个物理量:折射率。

所以其实一个材质就对应一个f0,这个都是定死的。


所以这个值需要针对物理材质有一个正确的设定,比如说质感比较“乌”的一个材质,那么f0就需要比较小,这样成0度角的时候反射较弱的,成180度时候是将近镜面反射,应该是比较强的。




但是如果美术根据直觉来设置就会比较麻烦,因为人眼识别亮度不是线性的而是一个log space的high dynamic range的,所以实际上specular亮1000倍的情况,可能直觉上是10倍。

tri-ace除了可以让美术直接添参数之外,还加了很多预置好的材质template来让美术有一个快速方便的选择。

----------------------------------------------------------------------------------------------------------------

为什么physically based?

大家逐渐口径一致了:

  • 更加的写实
  • 更少的参数
  • 面对不同光照环境更一致的表现
----------------------------------------------------------------------------------------------------------------
BRDF模型
tri-ace的BRDF模型是:

fresnel使用的是schlick fresnel approximation:

tri-ace的brdf是基于blinn phong model进行一些改进,其中有用来做能量守恒的normalize项,它的推导过程:

这里是一个关键的优化,也是常用的方法,就是曲线近似:


所以最后公式优化修订为:

------------------------------------------------------------
ambient brdf
tri-ace希望在ambient中也追求质感,所以也做了个ambient的brdf。
由于ambient lighting一般被认为是一个area lighting,所以brdf公式是一个半球积分:

这面的p(n,f0,w,w`)这个函数就是上面的那个BRDF函数。

这个积分肯定不具有实时计算性,所以tri-ace把它给存到一个volume texture里了。
为了性能,specular term是使用这个半球积分算的,diffuse就变成diffuseColor*(1-specularTerm)这样。

实际使用中incoming light color还是往常一样,比如sh lighting就用normal来算,env map就用reflect vector来算。
看下对比图,效果还是很显著的:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值