GAMES101 学习笔记 Lecture 15~18

文章详细介绍了光线追踪的基本原理,包括能量守恒、辐射照度、辐射亮度、光强之间的关系,以及BRDF(双向反射分布函数)在光线反射和折射中的应用。此外,还讨论了蒙特卡洛积分在解决渲染方程中的作用,以及在处理全局光照、反射数量爆炸、循环递归和采样效率问题上的策略。文章提到了路径追踪、光子映射、梅特罗波利斯光传输等现代渲染技术,并探讨了不同材质的模拟,如漫反射、光泽和理想反射/折射材料。最后,文章讨论了散射介质、毛发渲染以及程序化生成的表面等高级话题。

目录

Lecture 15: Ray Tracing 3 (Light Transport & Global Illumination)

能量一直在向外辐射,那么场景为什么不是越来越亮

因为物体接收到能量也会反射能量

辐[射]照度 irradiance

辐[射]照度表示单位面积上接受的光线在垂直方向上的辐射能量

E ( x ) ≡ Φ ( x ) d A E(x) \equiv \dfrac{\mathrm \Phi(x)}{\mathrm d A} E(x)dAΦ(x)

单位为 W m 2 \dfrac{W}{m^2} m2W 或者 l m m 2 = l u x \dfrac{lm}{m^2} = lux m2lm=lux

这里要求的是光线在垂直方向上的辐射能量,与光栅化中的 Lambert’s Cosine Law 类似

其实为了和之后的公式对比理解的话,我觉得也可以认为统计的这个光线的通量与面积不垂直

只要对这个面积乘一个 cos ⁡ θ \cos\theta cosθ 就好了

那么就可以写成 E ( x ) ≡ Φ ( x ) d A cos ⁡ θ E(x) \equiv \dfrac{\mathrm \Phi(x)}{\mathrm d A \cos\theta} E(x)dAcosθΦ(x)

在这里插入图片描述
当光逐渐向外传播时,变小的是 Irradiance 而不是 Intensity

也就是说,变小的是单位面积上的光通量,而单位立体角上的光通量是不变的

考虑这个单位立体角,在半径比较小的时候,对应的面积也小,在半径比较大的时候,对应的面积也大

Radiance 辐[射]亮度

Radiance 辐[射]亮度 Light Traveling ALong A Ray 单位立体角单位面积内或发射,或反射,或传送,或接受的能量

L ( p , w ) ≡ d 2 Φ ( p , w ) d w d A cos ⁡ θ L(p,w) \equiv \dfrac{\mathrm d^2 \Phi(p,w)}{\mathrm d w \mathrm d A \cos\theta} L(p,w)dwdAcosθd2Φ(p,w)

单位 W s r m 2 \dfrac{W}{sr m^2} srm2W c d m 2 = l m s r m 2 = n i t \dfrac{cd}{m^2} = \dfrac{lm}{sr m^2} = nit m2cd=srm2lm=nit

可以理解为一个单位面向某一个方向发出的能量

在这里插入图片描述
这里之所以能这么写,是使用了 E ( x ) ≡ Φ ( x ) d A cos ⁡ θ E(x) \equiv \dfrac{\mathrm \Phi(x)}{\mathrm d A \cos\theta} E(x)dAcosθΦ(x) 的定义,也就是计算 L L L E E E 的时候考虑到面积法向与光线方向不重合

Intensity, Irradiance, Radiance 之间的关系

Intensity 单位立体角所发射的能量

Irradiance 单位面积上接受的光线在垂直方向上的辐射能量

Radiance 单位立体角单位时间内或发射,或反射,或传送,或接受的能量

所以单纯从量纲上看,就有:

Radiance =

单位立体角的 Irradiance

单位面积的 Intensity

怎么理解 Radiance = 单位立体角的 Irradiance

从一个角度看,Radiance 是一个单位面积向某一个方向发出的能量

从另外一个角度看,Radiance 是一个单位面积从某一个方向接受的能量

类似地,Irradiance 也即是单位面积接受的能量,但是 Irradiance 是从各个方向接受的能量,而 Radiance 只是从一个方向

怎么理解 Radiance = 单位面积的 Intensity

感觉这个更好理解了,就是点到面

Radiance 是 Irradiance 微分

在这里插入图片描述
在一个半球对 Radiance 在半球上积分,就得到 Irradiance

前面好像也没有说这个 p 是什么?

这么一看的话,感觉应该是位置的意思

BRDF & The Rendering Equation

反射可以理解为从某个方向进来然后反射到某个方向去的能量。可以用 BRDF(反射方程)来描述这个过程。

就考虑某一个微小面积 dA 从某各微小立体角 dw 接收到的 Irradiance,会被如何分配到各个不同的立体角上面去。

在这里插入图片描述在这里插入图片描述

更具体地说,我们知道某一个单位面积接收到了多少能量,也就是知道了 E

更进一步,对于反射,对于反射中的入射光,我知道从入射方向 w i w_i wi 上过来了多少能量 d E ( w i ) = L ( w i ) cos ⁡ θ d w i \mathrm d E(w_i) = L(w_i) \cos\theta \mathrm d w_i dE(wi)=L(wi)cosθdwi

我始终没搞懂这个 PPT 这里为什么要写 d L d E \dfrac{\mathrm d L}{\mathrm d E} dEdL

而不是 L d E \dfrac{L}{\mathrm d E} dEL

分母是 d E \mathrm d E dE 我倒是理解,如果设 E E E 是面积 A 从半球的立体角接收到的能量,那么对立体角微分,就得到面积 A 从某一个立体角接收到的能量

那为什么不直接写成 L L L 呢?因为 Radiance 是单位面积单位立体角嘛

然后 d E = L cos ⁡ θ d w \mathrm d E = L \cos \theta \mathrm d w dE=Lcosθdw

其实我写 d E \mathrm d E dE 也相当于在用 L L L 嘛,只是我现在知道这个入射方向 w i w_i wi,那么我把 L L L w i w_i wi 一乘,就是这个方向来的单位面积的能量嘛,然后就是面积法向与方向之间有个角度所以加 cos ⁡ θ \cos \theta cosθ

但是出去的时候自然就是考虑 L L L 啊,我就不知道为什么他说是 d L \mathrm d L dL

我再看了一下别人的解释

https://zhuanlan.zhihu.com/p/393371982

别人也说是

所以,P 点接受的辐照度和 PO 方向的辐亮度的比值是一个固定值,其只和 P 点表面的属性,入射光线 LP 以及出射光线 PO 相关,和光源 L 或其他的任何值都无关。我们把入射光线 w i w_i wi 记作 ,出射光线记作 w o w_o wo,那么我们把这个反射比率用函数 f ( p , w i , w o ) f(p,w_i,w_o) f(p,wi,wo) 表示。

这个函数即双向反射分布函数,BRDF。

然后别人也指出了一个隐含的条件就是,这个出射的 L L L 中的单位面积就是指的是打到与光路相垂直的单位面积

这就更加让我感觉合理了……因为入射的时候考虑的单位面积是着色点的单位面积,所以有 cos ⁡ θ \cos \theta cosθ;出射的时候认为计算的单位面积,或者说让别人接受的单位面积是垂直于光路的,所以没有 cos ⁡ θ \cos \theta cosθ

再看到了

https://www.cnblogs.com/wickedpriest/p/13184433.html

从图中可以看到,所谓的BRDF就是从ωi方向发射一束光,打在平面某一个顶点上,在ωr的方向上的辐射亮度和顶点的辐射强度之比。
其中dL(ωr)是表面反射到ωr方向的反射光的微分辐射亮度,表面反射到ωr的反射光的辐射亮度为L(ωr),来自于表面上半球所有方向入射光的贡献,用dL(ωr)是为了特指来自ωi方向的入射光贡献的辐射亮度。
dE(ωi)是表面从ωi方向的入射光的微分辐射强度,表面接收到的辐照强为E,用dE(ωi)特指来自于方向ωi的入射光。

他这个从 L 到 dL 的解释姑且还能接受,但是从 E 到 dE 的解释……看过那个半球的图,感觉还是用那个半球来解释可能会好一些

然后他后面解释了,dE dL 的写法是因为测量仪器的关系

嗯……很合理

就,干脆都用 L 也不是不行

在这里插入图片描述
就像这个 PPT 都是用的 L

后面又看到了有一个弹幕的解释

加d就是把很大一份分成很多很小一份,这一小份是根据夹角或者面积或其他来分的,本公式都是立体角,但是每个立体角也会导致其他变量不一样,比如cos值。说的高大上就是微分

然后再结合刚刚看到的那个博客

我感觉我似乎终于懂了……

首先,我们是从四面八方接受光线,所以输入 E

然后我们要向四面八方发散,所以输出 L

然后我们把这个 E 分成很多份,现在我们要知道入射方向的这一份,所以 E 是对立体角微分得到 dE, d E ( w i ) \mathrm d E(w_i) dE(wi) 就是入射方向的这一份

然后输出 L,因为它本身其实就是单位面积单位立体角,所以本身就是指定一个方向的,所以本身我们就是输出 L ( w o ) L(w_o) L(wo)

但是这个 L ( w o ) L(w_o) L(wo) 反射的能量来自 E E E,也就是来自各个入射方向的能量

现在我们把这个 L ( w o ) L(w_o) L(wo) 分成很多份,现在我们要知道来自入射方向贡献的这一份,所以我们用 d L ( w o ) \mathrm dL(w_o) dL(wo) 来代表入射方向贡献的这一份

感觉终于合理了……

再看一遍这页 PPT

在这里插入图片描述
他就是把这个分成很多份的 L ( w o ) L(w_o) L(wo) 积分嘛,那我们之前的 d L ( w o ) \mathrm dL(w_o) dL(wo) 来代表入射方向贡献的这一份,所以我们对所有的入射方向积分,也就是对这个半球积分的话,得到的就是这个 L ( w o ) L(w_o) L(wo)

BRDF 的递归问题

假设在某一个状态,我已经知道了 L i ( p , w i ) L_i(p,w_i) Li(p,wi),材质为 f r ( p , w i → w r ) f_r(p,w_i \rightarrow w_r) fr(p,wiwr),然后我可以计算出这一点的 L r ( p , w r ) L_r(p,w_r) Lr(p,wr)

但是这个出射的光线又会打到别的物体上,别的物体可能又会把这条光线反射回来,进而让我的 p p p 点的 L i ( p , w i ) L_i(p,w_i) Li(p,wi) 发生变化

我的 L i ( p , w i ) L_i(p,w_i) Li(p,w

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值