☰
UE5学习记录:次表面散射(SSS)
2026/10/28 19:09:16 网站建设 项目流程

1. 引言

角度不同,远近不同,透光不同

什么是次表面散射(SSS)

次表面散射(Subsurface Scattering,简称 SSS)描述的是这样一类物理现象:光线照射到物体表面后,并没有全部在表面直接反射,而是有一部分穿透进入物体内部,在内部经过多次散射、吸收之后,再从表面的其他位置透出。

应用场景

SSS 在实时渲染中非常常见,典型场景包括:

  • 角色皮肤:尤其是耳朵、鼻翼、手指边缘等薄区域,背光时会出现明显的红色透光。
  • 玉石、大理石:光在内部散射形成柔和的体积感。
  • 蜡烛、蜡质物体:靠近火焰一侧会透出暖色光晕。
  • 树叶、花瓣:逆光时叶片呈现半透明质感。

为什么选择预积分皮肤(Preintegrated Skin)

UE 中实现 SSS 有多种方案,常见的有:

方案精度性能开销适用场景
Subsurface(简单散射)低极低远景角色、移动端
Preintegrated Skin(预积分皮肤)中低中近景角色、移动端/性能受限 PC
Subsurface Profile(次表面轮廓)高较高影视级近景、PC 高端配置
Substrate(UE5 新材质系统)高视配置而定新项目、追求物理准确性

Preintegrated Skin的核心思路是:把复杂的多次散射计算预先烘焙成一张查找表(LUT),运行时只需根据光照角度和曲率查表插值,从而以极小的开销近似出不错的散射效果。它牺牲了一部分物理精度,换来了非常友好的性能表现,非常适合移动端或对帧率敏感的 PC 项目。

2. 材质节点图解析(M_Preintegrated_skin)

基础属性设置

基础颜色(Base Color)与次表面颜色(Subsurface Color)

在预积分皮肤着色模型下,材质会同时暴露Base Color与Subsurface Color两个颜色输入:

  • Base Color:表面直接反射的颜色,通常由皮肤漫反射贴图驱动,决定整体肤色。
  • Subsurface Color:散射光的颜色,也就是"光从内部透出来"时携带的色调。
粗糙度(Roughness)

图中粗糙度使用固定值0.5。这个数值在皮肤材质中是一个比较中庸的起点:

  • 太低(< 0.3):高光过于锐利,皮肤像涂了油或塑料;
  • 太高(> 0.7):高光散得太开,皮肤显得干燥、哑光过度。
Texture Sample

法线强度太高,用FlattenNormal节点压平法线

表面反射率(Surface Reflectance)与平均自由程颜色(Mean Free Path Color)

PS:这在**Subsurface Profile(次表面轮廓)**里调节

平均自由程(Mean Free Path)是 SSS 中最核心的物理概念之一:它表示光子在发生下一次散射之前,平均能走多远。

不同波长的光在皮肤中的平均自由程差异很大:

  • 红光:平均自由程最长,能穿透较深,因此皮肤背光时透出红色;
  • 绿光:中等;
  • 蓝光:最短,很快被吸收。

Surface Reflectance则控制表面反射的比例,影响整体亮度与对比度。它与 Base Color 配合,共同决定皮肤的明暗层次。

平均自由程距离(Mean Free Path Distance)

示例面板中该值为20.19,同时Scene Unit Scale为0.1。

这两个参数必须配合理解:

  • Mean Free Path Distance是散射距离的绝对数值;
  • Scene Unit Scale定义了场景单位与物理单位(通常为厘米)的换算比例。

实际物理距离 ≈Mean Free Path Distance × Scene Unit Scale。示例中约为2.019单位。这个值决定了散射的"视觉尺度"——数值越大,光透得越深,皮肤越像蜡;数值越小,散射越集中在表面,接近普通漫反射。

散射分布(Scattering Distribution)

示例中为0.93,接近 1,表示强前向散射。

散射分布参数控制光线散射方向的偏置:

  • 接近 0:后向散射,光更多往回弹;
  • 接近 0.5:各向同性散射;
  • 接近 1:前向散射,光倾向于沿原方向继续前进。

皮肤属于典型的前向散射介质,0.93是一个合理的取值。它带来的视觉效果是:光能穿透较深,透光区域边缘柔和,符合真实皮肤的观感。

IOR(折射率)

示例中为1.55。

折射率描述光从空气进入介质时的偏折程度。常见参考值:

  • 水:1.33
  • 皮肤/有机物:约 1.4 ~ 1.55
  • 玻璃:1.5
  • 钻石:2.42

1.55是皮肤与多数有机材质的典型值,它同时影响表面高光的菲涅尔反射强度。除非有特殊艺术需求,一般不建议大幅偏离这个范围。

粗糙度 0 / 粗糙度 1

双面高光模型提供两个粗糙度输入:

  • Roughness 0:控制表面直接反射的高光粗糙度;
  • Roughness 1:控制透射光(穿过材质后从背面透出的光)的高光粗糙度。

两者可以独立调节,从而实现"表面高光锐利、透射光柔和"的效果,这在薄皮肤区域(如耳朵)尤其明显。

叶混合(Leaf Mix)

示例中为0.85。

Leaf Mix 原本是为树叶这类薄片材质设计的参数,用于混合双面光照。但在皮肤材质中,它可以被巧妙利用来模拟耳廓、鼻翼、手指边缘等极薄区域的透光感——这些区域厚度小,光容易穿透,视觉上接近"叶片"的透光行为。

0.85是一个较高的值,说明作者希望强化薄区域的透光。如果发现耳朵透光过强、像塑料片,可以适当降低到 0.5 ~ 0.7。

透射着色(Transmission Tint)

控制透射光的颜色。它与 Mean Free Path Color 有相似之处,但作用层面不同:

  • Mean Free Path Color 影响散射计算的波长权重;
  • Transmission Tint 直接给透射光染色。
总结

这期低质了。。。。
参考视频:
【次表面散射 (Subsurface Scattering) | 虚幻5材质学习】 https://www.bilibili.com/video/BV1KE421A7jS/?share_source=copy_web&vd_source=1db761baa3e453aebd572fb8d5056343

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询