type
status
date
slug
summary
tags
category
icon
password

Diffuse部分

  • 参数
    • Diffuse贴图
    • DetailDiffuse贴图
    • 叠加色(m1) - Diffuse混合后相乘
    • 偏色(m2) - 由Diffuse贴图A通道强度控制强度,某种条件下的Diffuse偏色版本。由于截帧数据中该通道为纯白色,无法判断使用条件
    • 偏色混合强度(m13) - 用于lerp正常版本和偏色版本
    • uv边界效果强度(m9) - 对uv边界区域(未知作用)提亮
    • 细节混合权重(m14 \ m15) - 14为uv条件满足uvCheckFactor时的混合权重,15为不满足时的混合权重
      • uvCheckFactor判定左右半身
  • 仍然存在DetailBlend的开关判定,判定标准仍然是uv.x以0.5为分界
  • 仅对部分uv的颜色进行调制。条件:
    • abs(x-0.5) > 0.1 → x 小于0.4 | x大于0.6
    • abs(y - 0.471) > 0.049 → y小于0.422 | y大于0.52
    • 强度参数为_EdgeUVLumi
  • 有DetailDiffuse贴图进行调制(可能为空,默认白色)
  • 使用GGX/Trowbridge-Reitz模型计算D项,进行过工程化优化
    • 原公式
      • notion image
    • 新算法
      • 结果上新算法分母中的α²-1变成了α²*α² - 1

Normal部分

  • 存在DetailNormal
  • 根据DetailDiffuse贴图的alpha通道决定混合强度

高光与光照部分

  • 参数
    • 专门的SpecularTex贴图
    • 粗糙度影响强度(m10)- 调制贴图采样出的粗糙度
    • 镜面反射偏色与强度(m4) - rgb为偏色,a为强度
  • 使用Smith 计算G项 + Schlick菲涅尔近似
  • 第二光源L2强度使用距离调制:半角向量 H = normalize((viewDirWS.xyz * viewDistance) + _SecondLightDir.xyz) 该光源产生的镜面高光随距离衰减
  • 使用专门的SpecularTex与独立的强度控制(m4)调制结果
  • F0项与Roughness相关(一般为固定值)
  • 环境光算法进行过调制
    • 使用f0项叠乘GlossyEnvironmentReflection 的结果,公式为 GI = indirectDiffuse * indirectSpecular * f0 * _EnvOcclusion
      有别于常规算法 GI =indirectDiffuse * diffusecolor + indirectSpecular * lerp( specularColor, grazingTerm, f0)
  • 最多四盏点光
    • 简化的G项(G= pRoughness * 0.25 + 0.25)
    • 简化的F项(F=f0)
    • color = D*G*F* (1 - ScreenspaceShadowStr)
  • 对不同BRDF项使用了最小值为0.01和0.1两种不同的最小粗糙度限制
  • color = GI + L2Specular*SSShadowWeight + mainLightColor + 4 * clusterLight

屏幕空间阴影

  • 单独Pass渲染
  • 总共4通道4光源
  • W通道分量为第二平行光阴影(可能是截帧特有使用条件)

分支

脸部分支

  • 额外多了一张脸部(脸颊)mask用于修改脸红
 
恋与深空着色分析(4) - 服装相关(常规PBR与关联变体)恋与深空着色分析(2) - SSS预渲染
Loading...