Please enable JavaScript.
Coggle requires JavaScript to display documents.
全局光照算法 - Coggle Diagram
全局光照算法
光传输物理学
-
辐射测量
-
辐射量
-
-
-
辐射亮度L:辐射源在某一方向,每单位投影面积、每单位立体角的辐射通量,瓦特/(球面度·平方米),五维量,随位置x和方向的向量(Vertex)Θ而变化,表示为L(x ,Θ)
球面坐标和立体角
球系坐标
φ ∈ [0 ,2π] θ∈ [0 ,π/2] 弧度的定义是弧长比半径,即为圆心角的弧度值,对于半径为1的单位圆,其周长为2π,所对应的圆心角弧度值为2π,也就是360°
立体角
-
半球积分:
双向反射分布函数
f(x, Ψ To Θ) = dL(x → Θ) / dE(x ← Ψ) = dL(x → Θ) / L(x ← Ψ)cos(N[x] ,Ψ)dω[Ψ]
属性
-
-
-
特定入射方向的BRDF值不依赖于沿其他入射角可能存在的辐照度。所以BRDF应表现为相对于所有入射方向的线性函数(对于所有立体角的积分)
dL(x → Θ) = f(x, Ψ → Θ) / dE(x ← Ψ)
dL(x → Θ) = ∫[Ωx]f(x, Ψ → Θ) / dE(x ← Ψ)
dL(x → Θ) = ∫[Ωx]f(x, Ψ → Θ) / dE(x ← Ψ)cos(N[x] ,Ψ)dω[Ψ]
-
-
-
-
-
渲染方程
半球公式
L(x → Θ) = Le(x → Θ) + Lr(x → Θ)
fr(x, Ψ → Θ) = Lr(x → Θ) / dE(x ← Ψ)
Lr(x → Θ) = ∫[Ωx]fr(x, Ψ → Θ) / dE(x ← Ψ)cos(N[x] ,Ψ)dω[Ψ]
所以:
L(x → Θ) = Le(x → Θ) + ∫[Ωx]fr(x, Ψ → Θ) / dE(x ← Ψ)cos(N[x] ,Ψ)dω[Ψ]
通俗的来说就是计算物体表面的总反射的辐射亮度L(x → Θ)(因为我们肉眼是通过物体表面反射的辐射亮度来判断物体的亮度和受光),总反射亮度等于物体本身发出的辐射亮度:Le(x → Θ)和物体接受到来自其他方向立体角的入射光的反射亮度 Lr(x → Θ)(立体角要积分)之和
-
区域公式
个人的话来说,流程是先判断两个点(设点x,y)表面是否可见,可见为V(x,y) = 1,不可见为0,然后假设两个点面之间没有参与介质,所以点x的入射辐射亮度等于点y所在面的投影面积的立体角的发射辐射亮度 L(x ← Ψ) = L(y → -Ψ)
将dAy的面积转为立体角G(x,y) = dω[x ← dAy] = cos(Ny, -Ψ) * dAy / r²xy
带入渲染方程即可
L(x → Θ) = Le(x → Θ) + ∫[A]fr(x, Ψ → Θ) / L(y → -Ψ)V(x,y)G(x,y)dAy
-