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论文核对技术事实后独立重写。

六个检查词

。这些词共同约束用类型与接口把路径、采样器和传感器组合成可扩展渲染器,每个词都必须落到公式、交互状态或可重放输出,不能只出现在术语表。

原书单元与独立机制解释

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、所有权、序列化和最小场景测试能否把错误定位到用类型与接口把路径、采样器和传感器组合成可扩展渲染器的首个分叉。

PathNode=(x,n,ω,β,pf,pr,event)PathNode=(x,n,\omega,\beta,p_f,p_r,event)

先预测,再操作三个章专属实验

分步1 / 3

1. 概念与因果路径

在A Class Library for Global Illumination中选择任一正式坐标,沿机制链查看它的输入、状态变化和可推翻探针。

路径空间与光传输事件

A Class Library for Global Illumination

把用类型与接口把路径、采样器和传感器组合成可扩展渲染器展开为传感器、散射、反弹与光源四类事件。

正式概念

ES₁S₂L

A Class Library for Global Illumination / path node classes

path node classes 保存路径顶点的几何与概率状态,light source sampling classes 封装光源生成策略,global illumination api 负责场景、积分器和输出的稳定边界。接口必须携带PDF与测度,不能只返回方向。

传感器

选择像素与初始方向,定义最终测量。

探针:类型合同、正反向PDF、所有权、序列化和最小场景测试

来源边界:Philip Dutré、Kavita Bala、Philippe Bekaert《Advanced Global Illumination》第二版。浏览稿与一手论文用于核对公式,课程交互不冒充原书图表。

最小可重现实验

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:公式与边界。 怎样用一个数值样本证明 PathNode=(x,n,ω,β,pf,pr,event)PathNode=(x,n,\omega,\beta,p_f,p_r,event) 中的量没有混用空间、单位或概率密度?

问题 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

pdf:概率密度必须与采样测度一致,才能正确形成蒙特卡洛权重。

阅读导航

← Conclusion · Hemispherical Coordinates →

讨论

评论区加载中…