文章目录
- 辐射度量学
- 辐射能和通量(功率)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:两次反弹
加起来:全局光照