通常渲染时,我们一直假设场景是由真空中的表面集合构成的,这意味着光线在表面之间传播时,辐射亮度保持不变。然而,在现实世界的众多场景中,这一假设并不准确,许多视觉效果都呈现出体积特性。例如,雾和烟会使光线衰减和散射,大气中的粒子散射使得天空呈现蓝色,日落呈现红色(这被称为瑞利散射 )。这些效果给我们目前讨论过的简单表面渲染建模带来了挑战。
图 1. 雾、云以及它们产生的效果并不容易渲染(来源:Pinterest)
体素渲染(这里,术语 “体积” 在技术上指参与介质 —— 大量分布在三维区域中的微小粒子)旨在对这类体积现象进行建模,并可视化三维采样数据集的二维投影,包括通过医学成像设备(如 CT、MRI)获取的数据或计算流体动力学模拟数据。本文介绍描述光线如何在参与介质中发射、吸收和散射的数学原理。
体散射模型
通常,在存在参与介质的环境中,有三种主要的物理现象会影响辐射亮度的分布:
- 吸收:由于光转化为另一种形式的能量(如热能)而导致的辐射亮度降低。
- 发射:由发光粒子添加到环境中的辐射亮度。
- 散射:沿一个方向传播的辐射亮度,由于与粒子碰撞而散射到其他方向。
(a) 吸收 (b) 发射 (c) 无吸收,只有散射
图 2. 云模型的三种主要物理现象(文献1《基于物理的渲染》书籍)
吸收
考虑一个充满随机分布吸收粒子的圆柱形介质,粒子密度为每单位体积 个粒子。如图 3 所示,设
为粒子在圆柱面上的平均投影面积。从传播方向看,粒子遮挡了一部分面积:
图 3. 微小介质圆柱体的可视化
因此,通过区间 传输的辐射亮度为:
这里,具有倒数距离单位 的项
被称为介质的吸收系数,记为
。它描述了光在介质中每传播单位距离被吸收的概率密度。以微小圆柱体的中心
和入射辐射亮度的方向
,我们对吸收效应建模如下:
图 4. 吸收的几何示意图(来源:loannis (Yannis) Gkioulekas)
通过求解该微分方程,可以得到光线从 点开始,沿
方向在介质中传播距离
后,剩余的入射辐射亮度总量:
发射
相反,发射是由于化学、热或核过程将能量转化为可见光,从而增加入射光线的辐射亮度,而吸收则会降低辐射亮度。一般来说,基于基尔霍夫热辐射定律,发射也使用吸收系数进行建模;由于发射导致的辐射亮度变化为:
注意,这里包含了几何光学的假设,即来自各种光源的光的综合效果总是等于每个光源单独作用效果的总和。因此,增加的辐射亮度 仅由发射光
计算得出,与入射光
无关。