OCTANE渲染器制作伪SSS提升渲染速度方法小结
H-T-Z-T
2019年11月07日 20:00
收录于文集
共5篇

大家都知道所谓的SSS次表面散射皮肤材质,传统做法是在specular的基础上,添加scattering medium,然后用两个RGBspectrum去控制absorption和scattering,最后用floattexture去控制浮点强度,最后mix image达到SSS的效果,但是这种方法非常浪费资源而且噪点很难控制,对于低配电脑简直是噩梦(当然你习惯HDR+圆盘+模型就无所谓了)。

那怎么办呢?我们可以以diffuse为基础,首先关闭diffuse通道,然后用rgbspectrum去控制transmission,然后给medium一个absorption,然后再去mix image,然后你就会发现,哇~~~!!!!

原理实际上很简单,transmission在OC里面的表现机制是过滤掉其他颜色而保留“排除”颜色,所以用RGB去控制transmission,就是给予了光透过材质保留的颜色,在皮肤材质上自然是红色,所以RGB建议把红色拉到头;而absorption在OC里面的表现机制是决定了模型皮肤颜色表现的深浅程度(姑且这么理解吧),所以这两个节点赋予了diffuse材质的通透性、通透颜色、和通透程度,电脑在计算的时候就省略了specular基础上的SSS材质的面下散射、折射计算过程(实际上也是计算机按函数模拟计算的,不是真实散射、折射的计算,因为没法算。。。),使渲染过程得到大幅简化,自然也就非常省资源喽~~

还要注意一点,我们一般将image与以diffuse为基础的伪SSS混合后,才形成最终的皮肤材质,因为把diffuse通道关闭转而用transmission来表现通透,容易造成mix材质的index值偏低,因此我们在混合后,要将mix的index值拉高一些,才能实现更好的效果。

PS:我的习惯是用floattexture来控制transmission,而在absorpion上连接一个RGB(纯红)再连接medium,这种做法更适合于身体皮肤,因为float可以控制皮肤材质的粗糙度,当然只是视觉上的,有需要的朋友可以用noise+transforno+bump来模拟;有时也用glossy为基础来调伪SSS,这种更适合面部皮肤,就是利用它的roughness来模拟“油腻”皮肤效果,大家也可以试一试哦~~~

总之,octane渲染器的三大材质diffuse\glossy\specular都是可以用来做SSS材质的,所谓的伪SSS材质不过是省略了表面下散射折射计算而已。目前octane发展到4.0,出了一个金属材质,这个东西也非常有意思,等我总结总结后再分享给大家。

就是这些啦,希望能对大家有所帮助。谢谢!