一、人物渲染技术

character.gif

1. 皮肤渲染(Skin Shader)

半兰伯特 + Ramp:将 NdotL 映射到 0~1 并经过 sigmoid 平滑后采样 Ramp。

次表面散射模拟(SSS):使用 Wrapped Lighting(JGT 公式)计算背光透射强度,乘以 _SSS_Color_SSS_Value


2. 面部渲染(Face Shader)

SDF 贴图驱动阴影:根据角色面部朝向与光源方向,使用 SDF 纹理的 R+G 通道生成精确的面部阴影视图。

多区域遮罩_CustomMask 区分脸颊、下巴等区域,各自控制阴影强度与高光。

球面法线混合:高光计算时使用以头部中心计算的球面法线代替网格法线,使高光过渡更平滑。

唇部高光偏移:根据视角和头部右向量对 UV 偏移,单独采样 _LipHighlightMask 产生唇部立体感。

侧面颜色:根据面部区域遮罩混合 _FaceSideColor 模拟侧面暗部色彩。


3. 头发渲染(Hair Shader)

各向异性高光:使用切线空间 T 向量与半角向量 H 的点积,计算 sin(TH) 再乘幂,模拟发丝的条状高光。

自定义遮罩贴图 _PMaskMap:存储 underHairMask、anisoHLMask、AO 和 anisoIntensity。


4. 眼睛渲染(Iris Shader)

两种折射模式:

  • 视差映射(Parallax):基于切线空间视角方向偏移 UV。
  • 物理折射(Physical):根据 IOR(折射率)模拟角膜和房水,计算折射偏移向量。

MatCap 高光:可选启用,通过法线在视角空间映射到 MatCap 纹理,模拟镜头光晕。

自发光强度控制_EmissionIntensity 调节虹膜亮度。

视角渐变透明:在第二 Pass 中根据视角与头部前向夹角淡出,用于眼睑覆盖效果。

eye.gif


5. 轮廓线(Outline)

平滑法线外扩:顶点着色器读取平滑法线(模型导入时预处理),沿法线方向外扩顶点。

纹理遮罩控制宽度:采样 _ST 贴图(类似顶点色),允许美术控制不同区域的轮廓粗细。

Clip 空间 Z 偏移:防止轮廓与模型本身的深度冲突。

outline.gif


6. 眼影(EyeShadow)与眉毛(Brow)

眼影:透明叠加,使用 mask 贴图的 R 通道作为透明度。

眉毛:在世界空间沿视线方向偏移位置,模拟厚度,并根据视角与头部前向夹角控制可见度。

Snipaste_2026-06-14_19-44-25.png

标签: none

添加新评论