01 / 08 · RELIGHTING
A color is not a material颜色不等于材质
Separate camera motion, light motion and material changes.分清转相机、转光源与改材质。
Start with a painted orange从一个涂成橙色的球开始
A photo records light that reached the camera. An orange patch may look dark because its paint is dark, its normal faces away, or another object blocks the light. One RGB value cannot tell you which explanation is correct.照片记录的是到达相机的光。一块橙色区域可能因为颜料暗、表面背着光,或被其他物体挡住而变暗。单个 RGB 无法告诉你是哪一种原因。
Base color is a material parameter in linear RGB. For a dielectric it controls diffuse reflectance; for a metal it sets colored specular reflectance in our metallic workflow. Observed RGB already mixes material, illumination, visibility and camera response.Base color 是线性 RGB 材质参数。对非金属,它控制漫反射反射率;在这里的金属度工作流中,对金属它控制有色镜面反射。观察到的 RGB 已混合材质、光照、遮挡与相机响应。
Why appearance SH cannot simply accept a new light为什么外观 SH 不能直接接收一盏新灯
Ordinary appearance SH stores a function of viewing direction v. Its RGB coefficients were fitted under the capture lighting. Moving the camera changes v; moving a light does not change those stored coefficients. A new light is a new input the original model was never asked to explain.普通外观 SH 存的是观察方向 v 的函数。RGB 系数在拍摄光照下拟合得到。移动相机改变 v;移动光源不会改变已存系数。新光照是原模型没有被要求解释的新输入。
The current STG-Lite loader uses direct RGB, not a general SH material. Its normal-named slots are not a verified surface-normal field. This lab therefore uses an analytic surface with authored normals and materials. It does not recover materials from that research asset.当前 STG-Lite 加载器使用直接 RGB,而非通用 SH 材质。名字像法线的槽位也不是已验证的表面法线。因此本实验使用解析曲面与明确设置的法线、材质,并没有从原研究资产恢复材质。
Try one controlled change一次只改一个变量
Select Base color in the lab and move the light: the surface color must stay fixed. Switch to Combined: now the lit region moves. Finally rotate the camera: the specular response changes even though the light stays in world space.在实验中选择 Base color 并移动光源:表面颜色应该保持不变。切到合成结果,亮区才跟着光源移动。最后转动相机:光源仍固定在世界空间,高光响应却改变了。
Predict it, then run it先预测,再运行
Open this experiment →打开对应实验 →The formula meets actual code公式连接真实代码
This excerpt is extracted from the repository during the site build. SH environment lighting and inverse training are future extensions; their chapters point to the current direct-light/data boundary, not an implemented trainer.此片段在网站构建时从仓库提取。SH 环境光照与逆向训练是未来扩展;对应章节指向当前直射光/数据接口,不代表已实现训练器。
src/relight.rs · L19–28
#[repr(C)]
#[derive(Clone, Copy, Pod, Zeroable)]
struct Splat {
center: [f32; 4],
u: [f32; 4],
v: [f32; 4],
w: [f32; 4],
normal: [f32; 4],
base: [f32; 4],
}Check your understanding检查是否真正理解
Why is multiplying captured RGB by a new Lambert term usually wrong?为什么把拍到的 RGB 再乘一次新的 Lambert 项通常不对?
Reveal the reasoning展开推理
The old shading is already baked into captured RGB. Multiplication adds new shading without removing old shadows or highlights.旧光照已烘进 RGB。再乘新着色没有去掉旧光照,所以旧阴影和高光还会留下。