文章目录
- 辐射度量学
- 辐射能和通量(功率)Radiant Energy and Flux (Power)
- 辐射强度 Radiant Intensity
- 辐照度Irradiance
- 朗伯余弦定律Lambert’s Cosine Law
- Radiance辐亮度
- Incident Radiance入射辐亮度
- Exiting Radiance出射辐亮度
- 双向反射分布函数 Bidirectional Reflectance Distribution Function (BRDF)
- 反射方程
- 渲染方程
Basic radiometry
辐射度量学
之前实现过Blinn-Phong model
你认为Whitted-style的光线追踪会给你正确的结果吗?
路径追踪的基础
照明测量系统和单位
精确测量光的空间特性
新术语:辐射通量,强度,辐照度,辐射度
Radiant flux, intensity, irradiance, radiance
以物理正确的方式进行照明计算
辐射能和通量(功率)Radiant Energy and Flux (Power)
定义:辐射能(Radiant energy)是电磁辐射的能量。它的单位是焦耳,用符号表示
Q [ J = J o u l e ] Q[J=Joule] Q[J=Joule]
定义:辐射通量(功率)Radiant flux (power)是单位时间内发射、反射、发射或接收的能量
Φ = d Q d t [ W = W a t t ] [ l m = l u m e n ] ∗ \Phi=\frac{dQ}{dt}[W=Watt][lm=lumen]^* Φ=dtdQ[W=Watt][lm=lumen]∗
通量-#在单位时间内流过传感器的光子数
重要的光测量
辐射强度 Radiant Intensity
定义:辐射(发光)强度是点光源单位solid angle立体角(?)发出的功率。
I ( ω ) = d Φ d ω I(\omega)=\frac{d\Phi}{d\omega} I(ω)=dωdΦ
[ W s r ] [ l m s r = c d = c a n d e l a ] [\frac{W}{sr}][\frac{lm}{sr}=cd=candela] [srW][srlm=cd=candela]
坎德拉是国际单位制的七个基本单位之一。
角和立体角
角:圆上的弧长与半径之比
- θ = l r \theta=\frac{l}{r} θ=rl
- 圆有 2 π 2\pi 2π弧度
立体角:球面上的面积与半径的平方之比
- Ω = A r 2 \Omega = \frac{A}{r^2} Ω=r2A
- 球面 4 π 4\pi 4π球面度
微分立体角
d A = ( r d θ ) ( r sin θ d ϕ ) = r 2 sin θ d θ d ϕ dA=(rd\theta)(r\sin\theta d\phi)=r^2\sin\theta d\theta d\phi dA=(rdθ)(rsinθdϕ)=r2sinθdθdϕ
d ω = d A r 2 = sin θ d θ d ϕ d\omega=\frac{dA}{r^2}=\sin\theta d\theta d\phi dω=r2dA=sinθdθdϕ
球面: S 2 S^2 S2
Ω = ∫ S 2 d ω = ∫ 0 2 π ∫ 0 π sin θ d θ d ϕ = 4 π \Omega=\int_{S^2}d\omega=\int_0^{2\pi}\int_0^{\pi}\sin\theta d\theta d\phi=4\pi Ω=∫S2dω=∫02π∫0πsinθdθdϕ=4π
ω \omega ω是一个方向向量
将使用 ω \omega ω表示方向矢量(单位长度
各向同性点源
Φ = ∫ S 2 I d ω = 4 π I \Phi=\int_{S^2}Id\omega=4\pi I Φ=∫S2Idω=4πI
I = Φ 4 π I=\frac{\Phi}{4\pi} I=4πΦ
现代LED灯
辐照度Irradiance
定义:辐照度是入射到表面点上的单位面积的功率。
E ( x ) = d Φ ( x ) d A E(x)=\frac{d\Phi(x)}{dA} E(x)=dAdΦ(x)
[ W m 2 ] = [ l m m 2 = l u x ] [\frac{W}{m^2}]=[\frac{lm}{m^2}=lux] [m2W]=[m2lm=lux]
朗伯余弦定律Lambert’s Cosine Law
表面的辐照度正比于光方向与表面法线夹角的余弦。
E = Φ A cos θ E=\frac{\Phi}{A}\cos\theta E=AΦcosθ
其中 cos θ = l ⋅ n \cos\theta =l\cdot n cosθ=l⋅n
Radiance辐亮度
辐射度是描述光在环境中分布的基本场量
- 亮度是与射线有关的量
- 渲染就是计算亮度
定义:辐射度(亮度)是一个表面在单位立体角、单位投影面积上发射、反射、传输或接收的功率。
L ( p , ω ) = d 2 Φ ( p , w ) d ω d A cos θ L(p,\omega)=\frac{d^2\Phi(p,w)}{d\omega dA\cos\theta} L(p,ω)=dωdAcosθd2Φ(p,w)
[ W s r m 2 ] [ c d m 2 = l m s r m 2 = n i t ] [\frac{W}{sr\ m^2}][\frac{cd}{m^2}=\frac{lm}{sr\ m^2}=nit] [sr m2W][m2cd=sr m2lm=nit]
单位投影面积上单位立体角的功率。
Incident Radiance入射辐亮度
入射辐射度是到达表面的单位立体角的辐射度
L ( p , ω ) = d E ( p ) d ω cos θ L(p,\omega)=\frac{dE(p)}{d\omega\cos\theta} L(p,ω)=dωcosθdE(p)
它是沿着给定光线到达表面的光。点在表面和入射方向
Exiting Radiance出射辐亮度
出射辐射度是离开表面的单位投影面积的强度。
L ( p , ω ) = d I ( p , ω ) d A cos θ L(p,\omega)=\frac{dI(p,\omega)}{dA\cos\theta} L(p,ω)=dAcosθdI(p,ω)
对于面积光,它是沿着给定光线发出的光(指向表面和出口方向)。
辐照度:面积dA所接收的总功率
辐亮度:面积dA从“方向”dw接收的功率
d E ( p , ω ) = L i ( p , ω ) cos θ d ω dE(p,\omega)=L_i(p,\omega)\cos\theta d\omega dE(p,ω)=Li(p,ω)cosθdω
E ( p ) = ∫ H 2 L i ( p , ω ) cos θ d ω E(p)=\int_{H^2}L_i(p,\omega)\cos\theta d\omega E(p)=∫H2Li(p,ω)cosθdω
单位半球: H 2 H^2 H2
双向反射分布函数 Bidirectional Reflectance Distribution Function (BRDF)
一点的反射
从 ω i \omega_i ωi方向发出的辐射转化为dA接收的功率E
功率E就变成了任意方向上的辐照度 ω 0 \omega_0 ω0
微分辐照度入射: d E ( ω i ) = L ( ω i ) cos θ i d ω i dE(\omega_i)=L(\omega_i)\cos\theta_i d\omega_i dE(ωi)=L(ωi)cosθidωi
微分辐亮度射出: d L r ( ω r ) dL_r(\omega_r) dLr(ωr)
双向反射分布函数(BRDF)表示从每个入射方向反射到每个出射方向 ω r \omega_r ωr的光量
f r ( ω i → ω r ) = d L r ( ω r ) d E i ( ω i ) = d L r ( ω r ) L i ( ω i ) cos θ i d ω i [ 1 s r ] f_r(\omega_i\rightarrow \omega_r)=\frac{dL_r(\omega_r)}{dE_i(\omega_i)}=\frac{dL_r(\omega_r)}{L_i(\omega_i)\cos\theta_id\omega_i}[\frac{1}{sr}] fr(ωi→ωr)=dEi(ωi)dLr(ωr)=Li(ωi)cosθidωidLr(ωr)[sr1]
反射方程
L r ( p , ω r ) = ∫ H 2 f r ( p , ω i → ω r ) L i ( p , ω i ) cos θ i d ω i L_r(p,\omega_r)=\int_{H^2}f_r(p,\omega_i\rightarrow \omega_r)L_i(p,\omega_i)\cos\theta_id\omega_i Lr(p,ωr)=∫H2fr(p,ωi→ωr)Li(p,ωi)cosθidωi
挑战:递归方程
反射辐照取决于入射辐照
但是入射的辐照取决于反射的辐照(在场景的另一点)
任何一个出射的点都可能作为其他点的入射
渲染方程
通过添加一个发射项来使反射方程具有普遍性
L r ( p , ω r ) = L e ( p , ω o ) + ∫ Ω + f r ( p , ω i , ω o ) L i ( p , ω i ) ( n ⋅ ω i ) d ω i L_r(p,\omega_r)=L_e(p,\omega_o)+\int_{\Omega^+}f_r(p,\omega_i,\omega_o)L_i(p,\omega_i)(n\cdot \omega_i)d\omega_i Lr(p,ωr)=Le(p,ωo)+∫Ω+fr(p,ωi,ωo)Li(p,ωi)(n⋅ωi)dωi
自身发射的光。注意:现在,我们假设所有方向是向外的!
一个点光源
一堆点光源
面光源
光源可能是反射来的
Kajiya 86
是第二类Fredholm积分方程[广泛的数值研究]以标准形式
I ( u ) = e ( u ) + ∫ I ( v ) K ( u , v ) d v I(u)=e(u)+\int I(v)K(u,v)dv I(u)=e(u)+∫I(v)K(u,v)dv
线性算子方程
K ( u , v ) K(u,v) K(u,v)方程的核,光转移算子
L = E + K L L=E+KL L=E+KL
可以离散成一个简单的矩阵方程[或联立线性方程组](L, E为矢量,K为光转移矩阵
光线追踪和拓展
-
通用类数值蒙特卡罗方法
-
场景中所有光线路径的近似集合
L = E + K L L=E+KL L=E+KL
( I − K ) L = E (I-K)L=E (I−K)L=E
L = ( I − K ) − 1 E L=(I-K)^{-1}E L=(I−K)−1E
L = ( I + K + K 2 + . . . ) E L=(I+K+K^2+...)E L=(I+K+K2+...)E
L = E + E K + E K 2 + E K 3 + , , , L=E+EK+EK^2+EK^3+,,, L=E+EK+EK2+EK3+,,,
E E E: 直接从光源发出的光
K E KE KE: 表面直接照明
以上两个:光栅化中的着色
K 2 E K^2E K2E: 间接照明(一次间接反弹)(镜子,折射)
K 3 E K^3E K3E:两次反弹
加起来:全局光照