一、次表面散射(Sub-Surface-Scattering)
次表面散射,简称3S,用来描述光线穿过透明/半透明表面时发生散射的照明现象,是指光从表面进入物体经过内部散射,然后又通过物体表面的其他顶点出射的光线传递过程。
次表面散射主要用于模拟不完全透明材质内部表现出来的一种真实光影特效, 主要用于模拟蜡烛、大理石、玉石、灯光照射下的人的皮肤等材质。
- 如何利用一张LUT贴图模拟3S效果? → 只需通过Lambert光照模型与自定义滑块采样其uv
//需要一张皮肤区域的mask图
half skin_info = 1.0 - comp_mask.b;
//通过half-lambert采样贴图u坐标,材质开放滑块采样贴图v坐标
half3 NdotL = dot(nDir, lDir);
half diffuse_term = (max(0.0, NdotL) + 1.0 ) * 0.5;
half3 common_diffuse = diffuse_term * base_color * _LightColor0.xyz * atten;
half2 uv_lut_gamma = half2(diffuse_term * atten, _vLut);
half2 uv_lut = pow(uv_lut_gamma, 2.2);
half3 sss_term = tex2D(_S