GAMES101笔记:渲染方程


一、辐射度量学中的物理量

辐射度量学是基于物理光照的基础

1.1 物理量

1.1.1 Radiant energy(辐射能)

电磁辐射的能量

\[Q [J=Joule] \]

1.1.2 Radiant flux(辐射通量)

单位时间(\(t\))释放(emitted)、反射(emitted)、透射(transmitted)或接受(received)的能量

\[\Phi = \frac{\mathrm{d} Q}{\mathrm{d} t}[W=watt][lm=lumen] \]

1.1.3 Radiant Intensity(辐射强度)

辐射强度是单位立体角(\(w\))由点光源发出的功率(\(\Phi\))

在这里插入图片描述

$$ I(\omega) = \frac{\mathrm{d} \Phi}{\mathrm{d} \omega}[\frac{W}{sr}][\frac{lm}{sr}=cd=candela] $$

1.1.4 Irradiance(辐照度)

辐照度是每(垂直/投影(\(\cos \theta\)))单位面积(\(A\))入射到一个表面上一点(\(x\))的辐射通量(功率)

在这里插入图片描述

$$ E(\mathbf{x}) \equiv \frac{\mathrm{d} \Phi(\mathbf{x})}{\mathrm{d} A}[\frac{W}{m^2}][\frac{lm}{m^2}=lux] $$

1.1.5 Radiance(辐射)

是指一个表面在每单位立体角(\(w\))、每单位投影面积(\(A\))上所发射(emitted)、反射(reflected)、透射(transmitted)或接收(received)的辐射通量(功率)

在这里插入图片描述

$$ L(\mathrm{p}, \omega) \equiv \frac{\mathrm{d}^{2} \Phi(\mathrm{p}, \omega)}{\mathrm{d} \omega \mathrm{d} A \cos \theta}[\frac{W}{srm^2}][\frac{cd}{m^2}=\frac{lm}{srm^2}=nit] $$

1.2 物理量之间的关系

Radiant Intensity:单位立体角的辐射通量
Irradiance:单位投影面积的辐射通量
Radiance:单位投影面积的辐射强度或者是单位立体角的辐照度(单位立体角、单位投影面积的辐射通量)

1.2.1 Incident Radiance(入射辐射)

指到达表面的单位立体角(\(w\))的辐照度。即它是沿着给定光线到达表面的光(入射方向指向表面)

在这里插入图片描述

$$ L(\mathrm{p}, \omega)=\frac{\mathrm{d} E(\mathrm{p})}{\mathrm{d} \omega \cos \theta} $$

1.2.2 Exiting Radiance(出射辐射)

离开表面的单位投影面积(\(A\))的辐射强度

在这里插入图片描述

$$ L(\mathrm{p}, \omega)=\frac{\mathrm{d} I(\mathrm{p}, \omega)}{\mathrm{d} A \cos \theta} $$

1.2.3 Irradiance和Radiance之间的区别就在于是否有方向性

Irradiance:在面积(\(dA\))的总辐射通量
Radiance: 在面积(\(dA\)) 、(\(dw\))上的辐射通量

在这里插入图片描述

二、双向反射分布函数

Bidirectional Reflectance Distribution Function(BRDF)描述了从某个方向入射到一个点上的光线的能量会怎么反射,在不同的反射方向上会各分布多少能量。

在这里插入图片描述

假设光线从立体角\(w_i\)射入,打到物体表面 \(dA\),那么反射其实是即入射光线的radiance到达表面后被吸收变为power,再以radiance的形式发射出去这一转化过程。
那么BRDF就定义为对某一个出射方向的radiance\(L\) 占一个微小表面的irradiance\(E\)的比例。

\[f_{r}\left(\omega_{i} \rightarrow \omega_{r}\right)=\frac{\mathrm{d} L_{r}\left(\omega_{r}\right)}{\mathrm{d} E_{i}\left(\omega_{i}\right)}=\frac{\mathrm{d} L_{r}\left(\omega_{r}\right)}{L_{i}\left(\omega_{i}\right) \cos \theta_{i} \mathrm{d} \omega_{i}}\left[\frac{1}{\mathrm{sr}}\right] \]

三、反射方程

BRDF告诉了我们从某个方向入射的光线,在该表面上往某个方向反射会是怎样的结果,那么当我们考虑某个出射方向其接收的来自四面八方入射光线的反射结果贡献累计的话,我们就可以积分得到该点最终的着色结果。

在这里插入图片描述

$$ L_{r}\left(\mathrm{p}, \omega_{r}\right)=\int_{H^{2}} f_{r}\left(\mathrm{p}, \omega_{i} \rightarrow \omega_{r}\right) L_{i}\left(\mathrm{p}, \omega_{i}\right) \cos \theta_{i} \mathrm{d} \omega_{i} $$ 可以看到这个方程式递归定义的,任何一个点出射的radiance都有可能被作为另外一个点的入射radiance

四、渲染方程

\[L_{o}\left(p, \omega_{o}\right)=L_{e}\left(p, \omega_{o}\right)+\int_{\Omega^{+}} L_{i}\left(p, \omega_{i}\right) f_{r}\left(p, \omega_{i}, \omega_{o}\right)\left(n \cdot \omega_{i}\right) \mathrm{d} \omega_{i} \]

这里\(\Omega^+\)\(H^2\)一样代表半球。

4.1 渲染方程的进一步理解

只有一个点光源单一入射方向光线的反射方程:

在这里插入图片描述

引入多个光源,那么就把多光源的影响累计起来:

在这里插入图片描述

引入一个面光源,我们可以将面光源理解为所有点光源的集合,那我们就需要积分面光源所占的立体角,考虑它覆盖的所有方向的BRDF反射情况:

在这里插入图片描述

如果有来自别的物体表面反射的光线到达x再反射打到观察方向,就把这样的物体表面当作一个新的光源,无需进行额外处理:

在这里插入图片描述

4.2 使用二项式定理进行拆分

4.2.1 二项式定理

在这里插入图片描述

4.2.2 拆分渲染方程

渲染方式可以简化为以下形式:

\[I(u)=\theta(u)+\int l(v)K(u,v)dv \]

通过算符的抽象还可极度简化成如下形式:

\[L = E + KL \]

\(K\)为反射算符,\(L\)为未知数

\[\begin{aligned} L&=E + KL\\ 1L - KL&=E\\ (1-K)L&=E\\ L&=(1-K)^{-1}E \end{aligned}\\ \]

然后根据二项式定理,可写为:

\[\begin{aligned} L&=(1+K+K^2+K^3+...)E\\ L&=E+EK+K^2E+K^3E+... \end{aligned}\\ \]

最后我们可以得到最终的计算结果:即可以将渲染方程的着色结果分解为光线弹射多次的合成结果:

在这里插入图片描述

4.3 解渲染方程

4.3.1 Monte Carlo Integral

对于积分

\[\int f(x)\mathrm{d} x \]

随机变量

\[\quad X_{i} \sim p(x) \]

可以使用下式近似

\[\int f(x) \mathrm{d} x=\frac{1}{N} \sum_{i=1}^{N} \frac{f\left(X_{i}\right)}{p\left(X_{i}\right)} \]

\(N\):采样数
蒙特卡洛积分采用一种随机采样的方法,样本越多,结果越准。只要知道\(f(x)\)\(p(x)\)就能使用改式对定积分的结果进行近似。
如果样本式均匀分布的,那么:

\[\int_a^b f(x)\mathrm{d} x \]

随机变量\(x\)的概率密度为常数:

\[\quad X_{i} \sim p(x) = \frac{1}{b-a} \]

4.3.2 渲染方程近似求解

对于渲染方程

\[L_{o}\left(p, \omega_{o}\right)=L_{e}\left(p, \omega_{o}\right)+\int_{\Omega^{+}} L_{i}\left(p, \omega_{i}\right) f_{r}\left(p, \omega_{i}, \omega_{o}\right)\left(n \cdot \omega_{i}\right) \mathrm{d} \omega_{i} \]

蒙特卡洛积分公式中的\(f(x)\)

\[ L_{i}\left(p, \omega_{i}\right) f_{r}\left(p, \omega_{i}, \omega_{o}\right)\left(n \cdot \omega_{i}\right) \]

\(p(x)\)

\[w_{i} \sim p(w_i) = \frac{1}{2\pi} \]

那么可以得到近似解:

\[\begin{aligned} L_{o}\left(p, \omega_{o}\right) &=\int_{\Omega^{+}} L_{i}\left(p, \omega_{i}\right) f_{r}\left(p, \omega_{i}, \omega_{o}\right)\left(n \cdot \omega_{i}\right) \mathrm{d} \omega_{i} \\ & \approx \frac{1}{N} \sum_{i=1}^{N} \frac{L_{i}\left(p, \omega_{i}\right) f_{r}\left(p, \omega_{i}, \omega_{o}\right)\left(n \cdot \omega_{i}\right)}{p\left(\omega_{i}\right)} \end{aligned} \]

引用

GAMES101 中光的传播理论部分
网友的GAMES101笔记
https://zhuanlan.zhihu.com/p/139468429
https://zhuanlan.zhihu.com/p/389616851
图片来自GAMES101 PPT

本文结束


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM