Subsurface Scattering(SSS次表面散射)介绍
维基百科: Subsurface Scattering,简称SSS,中文翻译为次表面散射。在真实世界中许多物体是有点半透明的,比如皮肤、玉、蜡、大理石、牛奶等。这些半透明的材质受到数个光源的透射,物体本身就会受到材质的厚度影响而显示出不同的透光性,光线在这些透射部分也可以互相混合、干涉。说得简单一些就是:光射进表面,在材质里散射,然后从与射入点不同的地方射出表面。
SSS使照明的整体效果变得柔和,一个区域的光线会渗透到表面的周围区域,而小的表面细节变得看不清了。光线穿入物体越深,衰减和散射就越严重。我们拿皮肤为例,在照亮区到阴影区的衔接处,散射也往往引起微弱的倾向红色的颜色偏移,这是由于光线照亮表皮并进入皮肤,接着被皮下血管和组织散射和吸收,然后从阴影部分离开。
散射效果在皮肤薄的部位更加明显,比如鼻孔和耳朵的周围。如下图所示:
一、散射基本原理
一个光源发射出来的光线碰到物体,一部分光被反射,还有一部分光会穿透物体。
穿透物体的光线,由于物理原因他会在物体内部不停的反弹而改变方向。而这个过程中光线也会有衰减,直到消失。
光的衰减程度与物体内部的透光率有很大的关系。
每一束光线会以表面的进入点(P),而形成一个衰减的半径范围(D)。
在三维软件里面模拟的时候,光线进入物体的点的多少会对模拟SSS效果的精度有直接影响。
二、使用Houdini Point Clouds制作SSS效果
我们在Houdini里面制作次表面散射效果其实只需要两步就可以了。
第一步
进入物体里面,给你要做SSS效果的物体添加一个sss_pcloud节点,这个节点可以根据物体的表面生成Point Clouds点。调整点的数目并选择存储的目录后就可以点渲染输出了。
输出的时候记得物体的法线要正确。当然也可以调整法线来输出Point Clouds。一次正常法线的,然后利用revese节点翻转法线后再输出一遍,翻转法线后的Point Clouds可以模拟暗面的透光效果。
第二步
在shop中创建一个Material Shader材质。进入这个材质并找sssMultiple节点。用multisss节点的Color连接surface_outputs的Surface。
在multiSSS节点的pointcloud File处选择我们输出的Point Clouds文件。并把材质添赋予物体。就可以测试渲染了。
•Subserface Intensity:表面强度
•Subserface Color:表面颜色
•Evaluate RGB Separately:评估RGB,打开后RGB每个波长的光将被单独计算。
•Pointcloud File:从这里选择Point Clouds文件
•Pointcloud Sample:Point Clouds采样
•Scattering Distance:散射距离,主要靠这个参数来调节散射距离并配合表面强度来调节
•Bounce Attenuation:反弹衰减
下面这个材质,连接方法非常简单。调整两个法线不同的SSS Multiple材质来add叠加出SSS效果。然后用mix混合一点oglass的反射。加上点高光就欧了。
这是我用SSS做的一个蜗牛的材质
蜗牛材质的连接:
蜗牛壳子的连接: