type
status
date
slug
summary
tags
category
icon
password
1. 数据特征
- 输入
- 存在两组uv,uv2用于DetailMap
- 贴图构成(6张)
- 光源索引贴图
- MixMap(输入 - G:厚度 A: AO 未输入 - R\B 两个版本Roughness)
- 法线、细节法线、细节法线强度
- 光照掩码(决定下文主光计算中fullyMLight是否有效)
- 输出(2张RT)
- 光照结果
- 厚度图(1-Mixmap.g)


2. 计算特征
- 常规Normal混合DetailNormap,由疑似uv分区控制强度,来源为两项传入值
- 从2395截帧数据来看,两项都为0,没有起效,需要其他dc数据作为参考,后续文章会补充
- 主光计算
- 分为受AO的部分AmbientLight和不受AO的偏移部分fullyMLight,有各自的颜色和放学
- fullyMLight
- 通过输入的光源索引贴图+传入Buffer数据(_21.m6)应用主光强度偏移θ,作为fullyMLight的强度参数
- 只要传入的强度偏移参数(θ)不为1,则背光面也一定受,受光系数由[0,1]映射为[1-θ, 1]
- AmbientLight最终着色需要叠加AO
- 两盏光最终光照贡献都需要由NdL叠加球面积分(1/Π≈0.31830987)
- 球谐光照调制
- 特殊算法调制光照结果,关联性内容有:
- 与设定平面的高度差
- 指定颜色偏移
- 高度差叠加后的亮度
- 根据亮度调整的饱和度
- 叠加色
- 饱和度调整比例
- 叠加AO
- 点光源
- 通过传入贴图查找光源索引,uv为相对世界坐标的xz(无高度分布)
- 数据存储做了世界空间Y平面Grid处理
- 参数LightClusterPosGrid.xy为Y平面中的用于Cluster的原点坐标
- 参数LightClusterPosGrid.zw为单个Cluster块在xz轴上的尺寸
- 最多四个光源
- 每个光源计算流程一致
- 兰伯特光照
- 多种衰减叠加
- 叠加球面积分
- 最终光照 = 主光 + 球谐光 + 点光源
- 厚度图 = 1 - Mixmap.g
- 作者:Reguluz
- 链接:https://reguluz.cn/article/27e65fbc-2b71-80f0-a73c-f1291a34f535
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

