当前位置: 首页 > article >正文

图形学笔记 - 5-光线追踪 - 辐射度量学

文章目录

    • 辐射度量学
      • 辐射能和通量(功率)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θ=ln

在这里插入图片描述

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 (IK)L=E

L = ( I − K ) − 1 E L=(I-K)^{-1}E L=(IK)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:两次反弹

加起来:全局光照


http://www.kler.cn/a/531136.html

相关文章:

  • 【腾讯前端面试】纯css画图形
  • Spring Boot 实例解析:配置文件
  • 实验9 JSP访问数据库(二)
  • 信息学奥赛一本通 ybt 1608:【 例 3】任务安排 3 | 洛谷 P5785 [SDOI2012] 任务安排
  • Redis 数据备份与恢复
  • 前端面试笔试题目(一)
  • 高频文件更新数据实时同步实现原理
  • TensorFlow 示例平方米转亩
  • OpenCV:FLANN与暴力特征匹配
  • leetcode——二叉树的最近公共祖先(java)
  • HTML5教程之标签(2)
  • Java_类加载器
  • deep generative model stanford lecture note3 --- latent variable
  • 半导体器件与物理篇7 微波二极管、量子效应和热电子器件
  • SynchronousQueue 与 LinkedBlockingQueue区别及应用场景
  • DeepSeek-R1 低成本训练的根本原因是?
  • CTF-web: php-session临时文件特性
  • Spring MVC学习——发送请求(@RequestMapping注解及请求参数绑定)
  • Android学习19 -- 手搓App
  • The Simulation技术浅析(三):数值方法
  • Hive修复分区
  • 亚博microros小车-原生ubuntu支持系列:20 ROS Robot APP建图
  • 【IocDI】_存储Bean的五大类注解及getBean的使用
  • 独立开发者的技术栈
  • 使用Pygame制作“走迷宫”游戏
  • 54【ip+端口+根目录通信】