A Class Library for Global Illumination
A Class Library for Global Illumination:用类型与接口把路径、采样器和传感器组合成可扩展渲染器,以公式、章专属交互和可重放故障证据独立重写。
学习目标
- 能说明A Class Library for Global Illumination中的“用类型与接口把路径、采样器和传感器组合成可扩展渲染器”,并指出公式中每个量的空间、单位或概率含义
- 能比较正常基线与“类层次隐藏路径概率,或对象生命周期使缓存引用失效”反例,定位类型合同、正反向PDF、所有权、序列化和最小场景测试中的首个差异
- 能操作三个章专属实验,让path node classes、light source sampling classes、global illumination api同时具备解释、视觉和练习证据
- 能修改最小实现、固定输入重放,并判断“A Class Library for Global Illumination的输入、公式中间量、输出与恢复结果可用同一基线复算”是否重新成立
从一个会失败的图像实验开始
A Class Library for Global Illumination要回答的不是“这个名词是什么”,而是:在固定输入下,如何验证“用类型与接口把路径、采样器和传感器组合成可扩展渲染器”,并让一个反例可重复地推翻错误实现?先写下预期像素、几何或估计量,再运行基线;只要类型合同、正反向PDF、所有权、序列化和最小场景测试无法指出差异来自哪一步,图像看起来正确也不能通过。
本页的不变量是:A Class Library for Global Illumination的输入、公式中间量、输出与恢复结果可用同一基线复算。反例“类层次隐藏路径概率,或对象生命周期使缓存引用失效”只改变一个条件,因而正常、故障与恢复三次运行应能用同一输入直接比较。
原版、版次与事实来源
A Class Library for Global Illumination以作者官网和第二版104页浏览稿核对书名、作者、2006版次、目录、部分图文与公式,并以出版社书目交叉确认。浏览稿不是完整正文;课程用渲染方程原始论文与Veach论文核对技术事实后独立重写。
六个检查词
↡path node classes在A Class Library for Global Illumination中用于用类型与接口把路径、采样器和传感器组合成可扩展渲染器;应由类型合同、正反向PDF、所有权、序列化和最小场景测试确认,而不是只凭术语出现。、↡light source sampling classes在A Class Library for Global Illumination中用于用类型与接口把路径、采样器和传感器组合成可扩展渲染器;应由类型合同、正反向PDF、所有权、序列化和最小场景测试确认,而不是只凭术语出现。、↡global illumination api在A Class Library for Global Illumination中用于用类型与接口把路径、采样器和传感器组合成可扩展渲染器;应由类型合同、正反向PDF、所有权、序列化和最小场景测试确认,而不是只凭术语出现。、↡radiance:辐亮度沿无吸收直线保持,是光传输方程的基本方向量。、↡path throughput:路径吞吐量累计每次散射、余弦、PDF与终止补偿。、↡pdf:概率密度必须与采样测度一致,才能正确形成蒙特卡洛权重。。这些词共同约束用类型与接口把路径、采样器和传感器组合成可扩展渲染器,每个词都必须落到公式、交互状态或可重放输出,不能只出现在术语表。
原书单元与独立机制解释
A Class Library for Global Illumination
path node classes 保存路径顶点的几何与概率状态,light source sampling classes 封装光源生成策略,global illumination api 负责场景、积分器和输出的稳定边界。接口必须携带PDF与测度,不能只返回方向。
本单元的正式坐标是path node classes、light source sampling classes、global illumination api。验证A Class Library for Global Illumination时,先制造“类层次隐藏路径概率,或对象生命周期使缓存引用失效”,再检查类型合同、正反向PDF、所有权、序列化和最小场景测试能否把错误定位到用类型与接口把路径、采样器和传感器组合成可扩展渲染器的首个分叉。
先预测,再操作三个章专属实验
1. 概念与因果路径
在A Class Library for Global Illumination中选择任一正式坐标,沿机制链查看它的输入、状态变化和可推翻探针。
路径空间与光传输事件
A Class Library for Global Illumination
把用类型与接口把路径、采样器和传感器组合成可扩展渲染器展开为传感器、散射、反弹与光源四类事件。
正式概念
A Class Library for Global Illumination / path node classes
path node classes 保存路径顶点的几何与概率状态,light source sampling classes 封装光源生成策略,global illumination api 负责场景、积分器和输出的稳定边界。接口必须携带PDF与测度,不能只返回方向。
传感器
选择像素与初始方向,定义最终测量。
探针:类型合同、正反向PDF、所有权、序列化和最小场景测试
最小可重现实验
struct PathNode {
Point3 p; Normal3 n; Spectrum throughput;
double pdfForward, pdfReverse;
ScatteringEvent event;
};
PathNode extend(const PathNode&, const Sample&);运行A Class Library for Global Illumination时固定随机种子、输入几何、坐标约定和数值精度;记录编译命令或算法版本、输出摘要与失败条件。实验输出若依赖隐藏全局状态,必须先消除该依赖再比较。
练习与答案
练习
问题 1:公式与边界。 怎样用一个数值样本证明 中的量没有混用空间、单位或概率密度?
问题 2:正式坐标。 path node classes、light source sampling classes、global illumination api如何进入可操作验证?
问题 3:故障恢复。 如何证明“类层次隐藏路径概率,或对象生命周期使缓存引用失效”已经真正修复?
本章回顾
掌握A Class Library for Global Illumination意味着能将“用类型与接口把路径、采样器和传感器组合成可扩展渲染器”写成明确公式或算法,能操作正式坐标,能制造“类层次隐藏路径概率,或对象生命周期使缓存引用失效”,还能凭类型合同、正反向PDF、所有权、序列化和最小场景测试恢复同输入结果,而不是把一段Vulkan生命周期模板换上本章标题。
名词解释
本章出现的专业名词,用大白话再讲一遍。
- path node classes
path node classes在A Class Library for Global Illumination中用于用类型与接口把路径、采样器和传感器组合成可扩展渲染器;应由类型合同、正反向PDF、所有权、序列化和最小场景测试确认,而不是只凭术语出现。
- light source sampling classes
light source sampling classes在A Class Library for Global Illumination中用于用类型与接口把路径、采样器和传感器组合成可扩展渲染器;应由类型合同、正反向PDF、所有权、序列化和最小场景测试确认,而不是只凭术语出现。
- global illumination api
global illumination api在A Class Library for Global Illumination中用于用类型与接口把路径、采样器和传感器组合成可扩展渲染器;应由类型合同、正反向PDF、所有权、序列化和最小场景测试确认,而不是只凭术语出现。
- radiance
radiance:辐亮度沿无吸收直线保持,是光传输方程的基本方向量。
- path throughput
path throughput:路径吞吐量累计每次散射、余弦、PDF与终止补偿。
pdf:概率密度必须与采样测度一致,才能正确形成蒙特卡洛权重。