Dielectrics

Dielectrics:在反射、折射和全内反射之间做概率选择,以公式、章专属交互和可重放故障证据独立重写。

学习目标

  • 能说明Dielectrics中的“在反射、折射和全内反射之间做概率选择”,并指出公式中每个量的空间、单位或概率含义
  • 能比较正常基线与“正反面使用同一折射率比,或在全内反射条件下仍计算折射根”反例,定位折射率比、cosθ、全内反射判据和随机选择结果中的首个差异
  • 能操作三个章专属实验,让电介质、折射、全内反射同时具备解释、视觉和练习证据
  • 能修改最小实现、固定输入重放,并判断“Dielectrics的输入、公式中间量、输出与恢复结果可用同一基线复算”是否重新成立

从一个会失败的图像实验开始

Dielectrics要回答的不是“这个名词是什么”,而是:在固定输入下,如何验证“在反射、折射和全内反射之间做概率选择”,并让一个反例可重复地推翻错误实现?先写下预期像素、几何或估计量,再运行基线;只要折射率比、cosθ、全内反射判据和随机选择结果无法指出差异来自哪一步,图像看起来正确也不能通过。

本页的不变量是:Dielectrics的输入、公式中间量、输出与恢复结果可用同一基线复算。反例“正反面使用同一折射率比,或在全内反射条件下仍计算折射根”只改变一个条件,因而正常、故障与恢复三次运行应能用同一输入直接比较。

原版、版次与事实来源

Dielectrics以官方4.0.2全文核对实现顺序、公式与调试边界,并以官方源码仓库交叉检查可编译接口。课程示例为独立教学重写;固定版本后不把Vulkan、GPU管线或其他书的模板倒灌进这个纯C++路径追踪器。

六个检查词

。这些词共同约束在反射、折射和全内反射之间做概率选择,每个词都必须落到公式、交互状态或可重放输出,不能只出现在术语表。

原书单元与独立机制解释

Dielectrics

电介质通常不吸收颜色,但会依据折射率改变方向;折射由Snell定律约束;当几何条件触发全内反射时只能反射,否则可用Schlick近似在两条路径之间采样。

本单元的正式坐标是电介质、折射、全内反射。验证Dielectrics时,先制造“正反面使用同一折射率比,或在全内反射条件下仍计算折射根”,再检查折射率比、cosθ、全内反射判据和随机选择结果能否把错误定位到在反射、折射和全内反射之间做概率选择的首个分叉。

ηisinθi=ηtsinθt,R(θ)R0+(1R0)(1cosθ)5\eta_i\sin\theta_i=\eta_t\sin\theta_t,\qquad R(\theta)\approx R_0+(1-R_0)(1-\cos\theta)^5

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

分步1 / 3

1. 概念与因果路径

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

射线、交点与章节机制

Dielectrics

沿一条可见射线检查在反射、折射和全内反射之间做概率选择,改变t时只移动采样点,不偷偷改变原点或方向。

正式概念坐标

射线参数 t
Q 原点P(1)P(t)=Q+td

Dielectrics / 电介质

电介质通常不吸收颜色,但会依据折射率改变方向;折射由Snell定律约束;当几何条件触发全内反射时只能反射,否则可用Schlick近似在两条路径之间采样。

可推翻探针:折射率比、cosθ、全内反射判据和随机选择结果

版本坐标:Peter Shirley、Trevor David Black、Steve Hollasch《Ray Tracing in One Weekend》4.0.2。实验状态只解释本章因果合同,不替代官方C++源码。

最小可重现实验

double ratio = rec.front_face ? (1.0/refraction_index) : refraction_index;
double cos_theta = std::min(dot(-unit_direction, rec.normal), 1.0);
bool cannot_refract = ratio*std::sqrt(1-cos_theta*cos_theta) > 1;
vec3 direction = cannot_refract ? reflect(unit_direction, rec.normal)
                                : refract(unit_direction, rec.normal, ratio);

运行Dielectrics时固定随机种子、输入几何、坐标约定和数值精度;记录编译命令或算法版本、输出摘要与失败条件。实验输出若依赖隐藏全局状态,必须先消除该依赖再比较。

练习与答案

练习

问题 1:公式与边界。 怎样用一个数值样本证明 ηisinθi=ηtsinθt,R(θ)R0+(1R0)(1cosθ)5\eta_i\sin\theta_i=\eta_t\sin\theta_t,\qquad R(\theta)\approx R_0+(1-R_0)(1-\cos\theta)^5 中的量没有混用空间、单位或概率密度?

问题 2:正式坐标。 电介质、折射、全内反射如何进入可操作验证?

问题 3:故障恢复。 如何证明“正反面使用同一折射率比,或在全内反射条件下仍计算折射根”已经真正修复?

本章回顾

掌握Dielectrics意味着能将“在反射、折射和全内反射之间做概率选择”写成明确公式或算法,能操作正式坐标,能制造“正反面使用同一折射率比,或在全内反射条件下仍计算折射根”,还能凭折射率比、cosθ、全内反射判据和随机选择结果恢复同输入结果,而不是把一段Vulkan生命周期模板换上本章标题。

名词解释

本章出现的专业名词,用大白话再讲一遍。

电介质

电介质在Dielectrics中用于在反射、折射和全内反射之间做概率选择;应由折射率比、cosθ、全内反射判据和随机选择结果确认,而不是只凭术语出现。

折射

折射在Dielectrics中用于在反射、折射和全内反射之间做概率选择;应由折射率比、cosθ、全内反射判据和随机选择结果确认,而不是只凭术语出现。

全内反射

全内反射在Dielectrics中用于在反射、折射和全内反射之间做概率选择;应由折射率比、cosθ、全内反射判据和随机选择结果确认,而不是只凭术语出现。

ray parameter

ray parameter:射线参数决定半直线上采样点与前后顺序。

hit interval

hit interval:命中区间排除相机背后、过近或更远的候选根。

sample estimator

sample estimator:样本估计器用明确PDF和权重近似目标积分。

阅读导航

← Metal · Positionable Camera →

讨论

评论区加载中…