次表面散射

意指光线进入反弹然后在不同角度溢出的半透明材质。许多有机和无机材料在表面并不完全不透明,所以光纤从表面反弹。相反,一些光在深深地渗透到皮肤表面,并散布在内部,呈现内部颜色并在不同位置出现。人类/动物皮肤、葡萄皮、西红柿、水果、蜡、凝胶(如蜂蜜或果冻)等均具有次表面散射(SSS),如果没有它,无法真正的实现照片真实感。

重要的是,次表面散射和漫反射是一样的。不同之处在于光线在被吸收或传播回去之前可以在表面之下的扩散距离。

运行原理

实际上,计算物体表面下的光路是不实际的。但是已经证明了没有必要这样做,我们可以使用不同的方法。

Blender计算SSS分两个步骤:

  1. 首先,从物体的正面以及从背面计算表面的辐照度或亮度。这与普通渲染中的几乎相同。环境遮挡,光能传递,漫反射着色器的类型,灯光颜色等都被考虑在内。
  2. 在第二步中,渲染最终的图像,但是现在SSS着色器替换了漫反射着色器。使用计算的光照贴图代替灯泡。表面点的亮度是其周围点亮度的计算“平均值”。根据您的设置,整个表面可能会被考虑在内,并且这比简单地计算平均值要复杂一点,但别太在乎它背后的数学问题。

相反,让我们看看SSS对一个明显的亮点做了什么。

../../../../_images/render_blender-render_materials_properties_subsurface-scattering_no-sss.jpg

没有SSS。

../../../../_images/render_blender-render_materials_properties_subsurface-scattering_small.jpg

小半径SSS。

../../../../_images/render_blender-render_materials_properties_subsurface-scattering_medium.jpg

SSS半径放大。

../../../../_images/render_blender-render_materials_properties_subsurface-scattering_large.jpg

SSS具有非常大的红色半径值。

如果打开SSS,则光线分布在更大的区域。该区域的大小取决于半径值。您可以为每种RGB颜色选择不同的半径值,而不是分配相同数量的所有颜色。

如果对颜色使用非常大的半径值,则其光线均匀分布在整个对象上。

Note

散射半径

由于计算散射的方式,在使用较大的半径值时,您会注意到边缘伪影出现为散射主色的互补色。在上图中,通过最后的图像,我们在照明区域看到一个蓝色的带子。这是一个不幸的限制。减少这种效应的一种方法是使用具有不同散射半径的多次通过,并对其进行平均。

启用次表面散射

../../../../_images/render_blender-render_materials_properties_subsurface-scattering_panel.png

SSS选项。SSS已经启用。

  • 通过点击次表面 散射 按钮来启用SSS。
  • 顶部可访问各种预设。当您选择预设时,为您设置 半径值RGB半径IOR 。其余的选项没有设置(因为它们主要取决于你的对象的大小)。

材质 次表面散射 不需要光线追踪。但由于它依赖于入射光线和阴影,因此需要适当的阴影计算(可能需要光线追踪)。

选项

数字滑块控制光线如何散射:

IOR折射率
IOR折射率( IOR )值确定入射光的衰减。数值越高意味着光线越快落下。效果是非常微妙的,只改变分布函数一点点。通过检查许多不同的材料,发现(1.3到1.5)的值对于大多数材料来说工作良好。如果您知道要模拟的确切材料,请参阅 常见材料的IOR值
比例
在此设置你想要的散射效果发生单位物的比例。1.0表示表示1个Blender单位等于1毫米,0.001表示1个Blender单位等于1米。如果要计算在场景中使用的缩放值,只需使用以下公式:(以Blender为单位)/(以毫米为单位的实际尺寸)=缩放。
散射颜色(反射率)

反照率是光线在散射事件中存活的概率。如果你认为散射是一种过滤器,这就是过滤器的高度。它乘以表面颜色。实际上,这是不直观的。它应该与表面颜色相同,但是,更改此值对散射效果的影响并不直观:

颜色越深,光线越分散。当数值为1时不会产生散射效应。

因此,如果将其设置为绿色,对象的照亮区域将显示为绿色,而绿色仅散布一点。因此,较暗的地方会出现红色和蓝色。您可以通过为颜色设置更大的半径来补偿不同的散射。

RGB范围
事实上,这不是次表面散射的范围,而是散射事件之间的平均路径长度。当光线穿过物体时,它会反射,然后在其他点出现。该值对应于每次反弹之间光线的平均长度。路径长度越长,光线越容易散射。这是材料感知“分散颜色”的主要来源。像皮肤这样的材料将具有比绿色和蓝色更高的红色半径。次表面散射是光在表面下的扩散。您可以控制光线传播的距离,以达到特定的效果。
混合
颜色
这控制了RGB选项调制漫反射颜色和纹理的程度。请注意,即使将此选项设置为0.0,RGB选项仍会影响散射行为。
纹理
表面纹理与阴影一起模糊的数量。
散射重量
增加或减少前方散射的因子。当光线通过物体的前部进入时,吸收或添加了多少?(通常为1.0或100%)。
增加或减少背散射的因子。从背后撞击物体的光线可以一路穿过物体,从物体的正面出来。这主要发生在像手和耳朵这样的薄物体上。
错误

该参数控制算法如何精确地采样周围的点。离开它在0.05应该给图像没有工件。它可以被设置得更高,以加速渲染,可能有错误。

将其设置为1.0是快速预览外观的好方法,但有错误。

开发您自己的SSS材料

传统的方法

更常见但不太直观的方法是使用“分层”。这是分层方法的简化版本。请参阅外部链接了解更多信息:

  • 将SSS颜色设置为您选择的值,通常是对象的主要颜色。如果你想使用不同的半径作为颜色,不要太暗。
  • 设置比例因子。如果你想要更多的半透明属性,您需要小的物体或大的值。
  • 设置半径值。
  • 值调整亮度。

更直观的方法

  • 将颜色数值设置为0.5。
  • 将散射权重前设置为2.0。
  • 根据对象相对于场景的大小设置比例因子。如果你想看到很多的半透明性,你需要小的物体或大的值。
  • 适当设置半径值。

实例

皮肤

增加SSS比例( blend文件)。
../../../../_images/render_blender-render_materials_properties_subsurface-scattering_head-1.jpg

比例:1。

../../../../_images/render_blender-render_materials_properties_subsurface-scattering_head-2.jpg

比例:2。

../../../../_images/render_blender-render_materials_properties_subsurface-scattering_head-3.jpg

比例:3。

../../../../_images/render_blender-render_materials_properties_subsurface-scattering_head-4.jpg

比例:4。

../../../../_images/render_blender-render_materials_properties_subsurface-scattering_head-5.jpg

比例:5。