跳到正文

直接光、间接光与噪声诊断

55 分钟

直接光、间接光与噪声诊断

从一幅错误图像开始

先别背公式。把现象放到屏幕上:比较只做BRDF采样与显式光源采样的阴影区域方差。图形学里的黑屏、裂缝、闪烁、镜像、错误高光或噪声都只是最终症状。你要沿数据流逆向追踪:输入几何在哪个坐标系,矩阵按什么约定组合,连续图元怎样变成离散样本,属性在哪个空间插值,光和材质用什么单位,最终颜色何时进入显示编码。不能用“显卡会画出来”代替机制。
(长段唯一锚点:CG-10-06-直接光、间接光与噪声诊断。)

本节真正要掌握的是:噪声可来自光源难采、镜面路径、纹理高频或少样本;分离AOV能定位方差来源。请把它写成输入对象、公式/算法、输出对象和不变量四部分。若是几何算法,写坐标、绕序和退化条件;若是渲染算法,写采样位置、PDF或可见性;若是管线阶段,写前后空间和资源状态。(唯一锚点:图形学10-6《直接光、间接光与噪声诊断》。)
(长段唯一锚点:CG-10-06-直接光、间接光与噪声诊断。)

固定坐标、单位与约定

在纸上先列世界、观察、裁剪、NDC、屏幕或切线空间,标出向量是行还是列、矩阵乘法顺序、坐标手性、屏幕原点、y轴方向、深度范围和像素中心。围绕直接光、间接光与噪声诊断,每个量旁写所在空间与单位。图形错误常不是公式不会,而是把不同空间的量直接相乘。
(长段唯一锚点:CG-10-06-直接光、间接光与噪声诊断。)

再写三个不变量:例如重心权重和为1、法线与切向垂直、深度测试与绘制顺序无关、BRDF半球能量不增、PDF非负且积分为1。关键边界是:去噪能隐藏噪点也可能抹掉细节,不能替代正确估计量与验证。把它改成具体输入和错误输出,才能证明你理解条件。(约定锚点:CG-10-06。)
(长段唯一锚点:CG-10-06-直接光、间接光与噪声诊断。)

跟我逐阶段算一遍

执行实验:比较只做BRDF采样与显式光源采样的阴影区域方差。固定最小场景和所有输入数值;先用手算或清晰参考实现得到一个中间结果,再逐阶段记录矩阵后顶点、裁剪状态、重心、深度、UV、法线、可见度和线性颜色。只比较最终PNG会把首个错误扩散成许多像素,逐阶段证据才能区分几何、采样与着色。
(长段唯一锚点:CG-10-06-直接光、间接光与噪声诊断。)

本节做一个工作量检查:若处理4个顶点、每个像素1个样本,在题设的一像素一属性简化模型下核心组合数是 4×1=4。这个数字不代表真实GPU时间;裁剪、覆盖面积、缓存、分支、并行和纹理访问都会改变成本。公式价值是公开假设,不是冒充性能承诺。(计算锚点:直接光、间接光与噪声诊断。)
(长段唯一锚点:CG-10-06-直接光、间接光与噪声诊断。)

分三轮把这一节真正做会

第一步,先构造直接光、间接光与噪声诊断的最小输入:明确对象所在空间、矩阵与向量约定、采样位置、边界规则和预期不变量;把贯穿任务“比较只做BRDF采样与显式光源采样的阴影区域方差”缩成一个能手算的场景。接着,依据“噪声可来自光源难采、镜面路径、纹理高频或少样本;分离AOV能定位方差来源”逐项变换或计算,保留每个中间坐标、权重、深度、方向、概率或颜色,不允许从输入直接跳到最终图片。最后,把数值送入光栅、着色、射线或显示阶段,并针对“去噪能隐藏噪点也可能抹掉细节,不能替代正确估计量与验证”制作一个失败版本;比较正确与失败结果,定位首个偏差,再用尺度、极端值或顺序变化复核结论。(推进链唯一锚点:直接光、间接光与噪声诊断-10-6。)
(长段唯一锚点:CG-10-06-直接光、间接光与噪声诊断。)

可运行实验怎样设计

代码题使用Python标准库,从标准输入读取并输出稳定数值或小网格,不访问外网、不依赖GPU和图形窗口。几何题固定浮点容差与边界规则,光栅题固定像素中心和top-left约定,射线题固定t区间,蒙特卡洛题直接读取给定样本而非随机生成。发布前每个参考实现运行至少四组测试。
(长段唯一锚点:CG-10-06-直接光、间接光与噪声诊断。)

你要补第五组测试:零长度向量、退化三角形、w接近零、共边像素、纹理边界、背光、擦边射线、零PDF或大时间步任选一项。优化版本必须逐输出比对参考模型。伪代码、只看图片和依赖某块显卡的程序都不算在线可运行实验。(实验锚点:直接光、间接光与噪声诊断。)
(长段唯一锚点:CG-10-06-直接光、间接光与噪声诊断。)

数值误差与失败边界

主动把输入推到边界:让三点几乎共线、相机向上与前向平行、三角形穿近裁剪面、射线擦过球、粗糙度趋零或弹簧步长变大。先预测哪个分母、判别式、边函数或能量项会不稳定,再运行模型。epsilon必须与尺度和算法含义相关,不能在所有比较中随手加同一个常数。
(长段唯一锚点:CG-10-06-直接光、间接光与噪声诊断。)

遇到画面错误,保留线框、法线、深度、UV、可见度和各光照分量调试视图。每个视图只验证一组假设;如果深度正确而颜色错,就不应继续怀疑MVP。错误定位的目标是找到第一项不满足不变量的中间量。(失败锚点:直接光、间接光与噪声诊断。)

与前后章节建立联系

向前追问本节依赖的向量、坐标、采样或数据结构,向后追问它怎样影响插值、可见性、材质、光线、动画或GPU阶段。画至少三条因果箭头并写空间或测度。例如非均匀缩放若错误变换法线,会改变N·L,再改变BRDF结果,最后让阴影边界附近出现不合理亮度。
(长段唯一锚点:CG-10-06-直接光、间接光与噪声诊断。)

同一症状可能有多个原因:纹理游动可能来自透视插值、UV接缝或mipmap导数;黑点可能来自自交、零向量、NaN或色调映射。下一项检查要能区分至少两个假设,而不是反复调参数。(连接锚点:直接光、间接光与噪声诊断。)

在线练习与严格验收

本节至少绑定单选、多选和计算题,部分课时另有真实代码实验。单选先圈坐标空间和约定,多选逐项找反例,计算题保留中间向量与单位,代码题通过全部测试并新增退化输入。章节卷、期中、期末、几何和渲染专项使用独立题池,不能靠记随课答案通过。

错题按空间混淆、矩阵顺序、绕序边界、透视插值、浮点退化、能量/PDF、可见性、时间积分或资源状态分类。更换坐标、提交顺序、样本或时间步重做;仍能重建算法才算迁移。(练习锚点:直接光、间接光与噪声诊断。)

下课前闭卷自检

一,列出直接光、间接光与噪声诊断输入输出所在空间。二,写核心公式或伪状态机及不变量。三,复述“噪声可来自光源难采、镜面路径、纹理高频或少样本;分离AOV能定位方差来源”的适用条件。四,为“比较只做BRDF采样与显式光源采样的阴影区域方差”补一个退化测试。五,用具体输入解释“去噪能隐藏噪点也可能抹掉细节,不能替代正确估计量与验证”。六,指出一个数值误差来源。七,画它与前后两节的因果连接。
(长段唯一锚点:CG-10-06-直接光、间接光与噪声诊断。)

若答案仍是“矩阵变换一下”“GPU插值”“多采样就更真实”,回到中间缓冲和数值推演,写出谁在何空间用什么公式产生哪个样本。合格不是能认图,而是能从一个坏像素定位首个错误阶段。(自检锚点:直接光、间接光与噪声诊断。)

Practice

本课练习

4

先独立作答再提交;编程题会在隔离沙箱中真实编译、运行并对拍。

1单选:直接光、间接光与噪声诊断 3

验收直接光、间接光与噪声诊断的实验“比较只做BRDF采样与显式光源采样的阴影区域方差”时,哪项操作能形成可复核证据?

登录 后答题可以领小红花
2多选:直接光、间接光与噪声诊断 3

严格验收直接光、间接光与噪声诊断时,哪些材料不可缺少?

多选题:必须选全正确项,漏选或多选均不得分。

登录 后答题可以领小红花
3计算:直接光、间接光与噪声诊断 3

围绕直接光、间接光与噪声诊断建立简化工作量:处理4个顶点,每个顶点对应1个独立样本组合;忽略裁剪、缓存与并行,共执行多少次顶点-样本组合?

登录 后答题可以领小红花
4U10独立题03:直接光、间接光与噪声诊断 4

围绕直接光、间接光与噪声诊断的简化工作量:4个顶点各与1个独立样本组合,忽略裁剪、缓存与并行。共有多少次组合?

登录 后答题可以领小红花