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项,进行过工程化优化
- 原公式
- 新算法

结果上新算法分母中的α²-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用于修改脸红
- 作者:Reguluz
- 链接:https://reguluz.cn/article/28865fbc-2b71-804d-adc1-d8715fab20cc
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
