【全局光照技术】光线微分-Ray Differentials(6.5.1纠错)

本文是对《全局光照技术》中光线微分部分的纠错笔记,详细解析了光线微分的概念、计算方法和传播过程中的错误,旨在澄清书中对光线足迹、光线微分计算和传播的混淆表述,帮助读者理解和应用光线微分技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、说明

秦春林的《全局光照技术:从离线到实时渲染》2018年6月第1版的6.5.1光线微分这一节中,对光线微分的概念阐述不够清晰和准确,这里做一个纠错笔记,同时也是自己的学习记录。

可通过文中的【表述不清晰】【纠错】高亮标签快速查找纠错信息。

二、理论提出(推导)

《全局光照技术》一书的6.5.1节的理论推导部分主要参考的是[Igehy, 1999]这篇,但在阅读中发现很多地方前后逻辑不顺畅,甚至有些地方无法正确推导,所以把原论文翻出来看了一下。读了之后发现原书省略、修改、杂糅了部分公式(杂糅的主要是PBRT里的公式),并且部分公式原书解读得并不正确,现在在这里做一个简单的梳理。

1、什么是光线微分?

先来看论文里的一张图,相较原书的图6.18,这张更易于理解。

图中的R是光线的表达式,包含P(位置)和D(方向)两个量(懒得打公式了,下面截了一张论文里的定义段落)。最基础的光线追踪,屏幕空间上的一个位置只对应一条光线,也就是R(x),光线微分就是给原本的一条光线(下称中心光线)加了两个小跟班,分别在屏幕空间上水平方向和垂直方向偏移一个单位,上图中只绘制了水平方向偏移的跟随光线。

为什么要多算这两条线呢?是为了更好地在局部(物体表面 / 纹理空间)进行采样,为了反走样。这也是为什么原书把光线微分放在6.5纹理过滤这一节里。

2、什么是光线足迹(ray's footprint)?

原书在介绍光线微分是什么和怎么计算过程中,多处提到光线足迹一词,但不同处的表达又有些微妙的不同:

P311 第四行:在路径的每个顶点处,该光线微分与表面的交点同中心光线的交点的距离用来近似该顶点的足迹。

P312 第二段第二行:如图6.18所示,所以光线的位置分量的微分\frac{\partial P }{\partial x}\frac{\partial P}{\partial y}就能够表示每个顶点的足迹。

【表述不清晰】P311的表达中,“距离”和“足迹(footprint)”这两个词能够划等号,一度让我非常困惑。 按照我的理解(可能不一定准确),光线足迹表示的是中心光线和跟随光线与物体表面的交点(一共是3个)所构成的能够进行采样的整个区域。传统光线追踪中,光线与表面的相交信息只局限于一点,用了光线微分技术之后,相交扩大为一个区域,就好像光线走过留下一个个脚印,所以叫这个区域为光线足迹?(猜的哈,我觉得挺有道理hhh

3、怎么计算光线微分?

光线微分通过一阶泰勒近似来进行计算,论文的公式如下图所示。同时论文还举例计算了光线从相机位置(眼睛为之Eye)发出时最初的微分值,

### Laplace Transform Second Order Differential Property Explanation The Laplace transform is an integral transformation that converts a function of a real variable \( t \) (often time) into a function of a complex variable \( s \). For the case of second-order differentials, this process simplifies solving linear differential equations with constant coefficients. For any continuous and piecewise smooth function \( f(t) \), its first derivative has the following relationship under the Laplace transform: \[ L\{f'(t)\} = sF(s) - f(0^-) \] where \( F(s) \) represents the Laplace transform of \( f(t) \)[^1]. Extending this concept to the second derivative yields: \[ L\{f''(t)\} = s^2F(s) - sf(0^-) - f'(0^-) \] This expression shows how initial conditions are incorporated directly within the transformed equation. The term \( s^2F(s) \) indicates multiplication by \( s^2 \) in the frequency domain while subtracting terms involving initial values ensures continuity between domains during transformations[^2]. When applying these principles specifically towards analyzing systems described via second-order ordinary differential equations through their transfer functions or state-space representations, one can leverage such properties effectively for stability analysis, controller design tasks among others. ```python from sympy import symbols, laplace_transform s, t = symbols('s t') f = symbols('f', cls=symbols) # Example of transforming a second order differential second_order_diff_eq = laplace_transform(f.diff(t, 2), t, s) print(second_order_diff_eq) ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值