原理

SSS LUT 用于快速查询在给定 光照角度(NdotL)表面曲率 下,次表面散射的出射强度。

核心模型:Burley Normalized Diffusion(迪士尼标准散射曲线):

其中 是表面两点间的距离, 是散射距离。

预计算次表面散射积分方法:1D 圆环截面积分

LUT 布局: 128×128
  X 轴 (0→127): NdotL ∈ [-1, 1]  → 光照方向与表面法线的夹角
  Y 轴 (0→127): curvature ∈ [0.005, 2.0] → 表面曲率(半径 = 1/curvature)

积分步骤:
  1. 将曲率转为球面半径 R = 1 / curvature
	  1. 对于每个角度 θ ∈ [-π, π](720 步):
     a. 计算弦长 chord = 2R · sin(|θ| / 2)
     b. 计算扩散权重 weight = Burley(chord, d=1.0)
     c. 只有 cos(θ - α) > 0 的被照面才有贡献
     d. 累加: result += cos(θ - α) × weight
  2. 归一化: result / totalWeight

设计思想:只烘焙物理基准距离 d=1.0 的单通道灰度 LUT。运行时在 Shader 中对 RGB 三通道分别采样:curvature × ScatterRadius.rgb × ScatterScale,实现免重复烘焙的万能体积散射。缺点:原本对于ScatterRadius.rgb × ScatterScale并不应是线性关系