在前一章中,我们学习了偏振光学的基础理论,包括琼斯矢量、斯托克斯参数和庞加莱球表示。本章将这些概念扩展到计算机图形学中,探讨如何在渲染管线中准确模拟偏振效应。偏振渲染不仅对物理真实感至关重要,还在计算机视觉、遥感和材质分析等领域有重要应用。我们将统一偏振渲染到体积渲染方程框架中,并展示如何高效计算偏振光传输。
米勒矩阵(Mueller matrix)提供了描述光与材料相互作用时偏振态变化的完整框架。与只适用于完全偏振光的琼斯矩阵不同,米勒矩阵可以处理部分偏振光。这种能力在真实世界渲染中至关重要,因为大多数光源产生的是部分偏振光,而非完全偏振光。
对于斯托克斯矢量 $\mathbf{S} = [S_0, S_1, S_2, S_3]^\mathsf{T}$,经过光学元件后的输出为:
$\mathbf{S}’ = \mathbf{M} \mathbf{S}$
其中 $\mathbf{M}$ 是4×4的米勒矩阵。斯托克斯参数的物理意义回顾:
| $S_0 = I_{\text{total}} = \langle | E_x | ^2 + | E_y | ^2\rangle$ (总强度) |
| $S_1 = I_H - I_V = \langle | E_x | ^2 - | E_y | ^2\rangle$ (水平-垂直偏振差) |
偏振度定义为: $\text{DoP} = \frac{\sqrt{S_1^2 + S_2^2 + S_3^2}}{S_0}$
对于部分偏振光,0 < DoP < 1;完全偏振光 DoP = 1;非偏振光 DoP = 0。
斯托克斯参数可以通过庞加莱球(Poincaré sphere)进行几何可视化。在归一化坐标系中:
$s_1 = S_1/S_0, s_2 = S_2/S_0, s_3 = S_3/S_0$
这些归一化参数满足: $s_1^2 + s_2^2 + s_3^2 \le 1$
等号成立时表示完全偏振光。庞加莱球上的点与偏振态的对应关系:
球面上的角度关系:
因此,任意偏振态可表示为: $\mathbf{s} = [\cos(2\chi)\cos(2\psi), \cos(2\chi)\sin(2\psi), \sin(2\chi)]^\mathsf{T}$
斯托克斯参数与2×2相干矩阵(coherency matrix)$\mathbf{J}$的关系:
$\mathbf{J} = \langle\mathbf{E} \otimes \mathbf{E}^\dagger\rangle = \begin{bmatrix} \langle E_x E_x^\rangle & \langle E_x E_y^\rangle \ \langle E_y E_x^\rangle & \langle E_y E_y^\rangle \end{bmatrix}$
斯托克斯参数可以通过Pauli矩阵展开获得: $S_\mu = \text{Tr}(\mathbf{J} \sigma_\mu)$
其中$\sigma_0 = \mathbf{I}$,$\sigma_1, \sigma_2, \sigma_3$是Pauli矩阵:
$\sigma_1 = \begin{bmatrix} 1 & 0 \ 0 & -1 \end{bmatrix}, \sigma_2 = \begin{bmatrix} 0 & 1 \ 1 & 0 \end{bmatrix}, \sigma_3 = \begin{bmatrix} 0 & -i \ i & 0 \end{bmatrix}$
这种表示在量子光学和偏振层析中特别有用。
在实际应用中,斯托克斯参数可通过一系列强度测量获得:
$S_0 = I(0^\circ) + I(90^\circ) = I(45^\circ) + I(135^\circ) = I_{\text{RCP}} + I_{\text{LCP}}$ $S_1 = I(0^\circ) - I(90^\circ)$ $S_2 = I(45^\circ) - I(135^\circ)$ $S_3 = I_{\text{RCP}} - I_{\text{LCP}}$
其中I(θ)表示通过方向为θ的线偏振器后的强度,I_RCP和I_LCP分别表示右旋和左旋圆偏振分量。
任何部分偏振光都可以唯一分解为完全偏振和非偏振部分:
$\mathbf{S} = \mathbf{S}{\text{pol}} + \mathbf{S}{\text{unpol}}$
其中: $\mathbf{S}{\text{pol}} = [\text{DoP}\cdot S_0, S_1, S_2, S_3]^\mathsf{T}$ $\mathbf{S}{\text{unpol}} = [(1-\text{DoP})\cdot S_0, 0, 0, 0]^\mathsf{T}$
这种分解在偏振渲染优化中很有用,因为非偏振部分的传播可以用标量方法处理。
物理可实现的米勒矩阵必须满足严格的数学约束,这些约束确保了光学系统的因果性和能量守恒。理解这些约束对于设计物理准确的偏振渲染算法至关重要。
能量守恒:$M_{00} \le 1$(对于无源系统) 更准确地说,对于任意输入斯托克斯矢量 $\mathbf{S}_{\text{in}}$: $S’_0 \le S_0 \implies \mathbf{e}_0^\mathsf{T} \mathbf{M} \mathbf{S} \le \mathbf{e}_0^\mathsf{T} \mathbf{S}$ 其中 $\mathbf{e}_0 = [1, 0, 0, 0]^\mathsf{T}$
对于有损耗的系统,能量守恒条件更严格: $\text{Tr}(\mathbf{M}^\mathsf{T}\mathbf{M}) \le 4$
这个条件确保了所有可能的输入偏振态都不会产生能量增益。
偏振度约束:输出偏振度不能超过输入 DoP_out ≤ DoP_in 对于纯消偏器 这等价于矩阵条件:$||\mathbf{M}[1:3,1:3]||2 \le M{00}$
更一般地,对于任意系统: $\lambda_{\text{max}}(\mathbf{M}[1:3,1:3]^\mathsf{T}\mathbf{M}[1:3,1:3]) \le M_{00}^2$
其中$\lambda_{\text{max}}$表示最大特征值。
对称性约束:对于互易介质,$\mathbf{M} = \mathbf{M}^\mathsf{T}$ 这源于亥姆霍兹互易原理,在微观上反映了时间反演对称性。
非互易系统(如法拉第旋转器)违反这个约束: $\mathbf{M}{\text{Faraday}} \ne \mathbf{M}^\mathsf{T}{\text{Faraday}}$
正定性约束: 对于任意物理可实现的输入 $\mathbf{S}$($S_0^2 \ge S_1^2 + S_2^2 + S_3^2$): $(\mathbf{M}\mathbf{S})_0^2 \ge (\mathbf{M}\mathbf{S})_1^2 + (\mathbf{M}\mathbf{S})_2^2 + (\mathbf{M}\mathbf{S})_3^2$
这可以表达为矩阵不等式: $\mathbf{S}^\mathsf{T}(\mathbf{M}^\mathsf{T}\mathbf{G}\mathbf{M})\mathbf{S} \ge 0$
其中 $\mathbf{G} = \text{diag}(1, -1, -1, -1)$ 是Minkowski度规。
特征值约束: 米勒矩阵的特征值必须满足: $|\lambda_i| \le \lambda_0$,其中$\lambda_0$是对应于非偏振响应的特征值
| 对于无损系统,所有特征值模长为1;对于有损系统,$ | \lambda_i | < 1$。 |
可过滤性条件: 物理可实现的米勒矩阵必须满足Barakat准则: $\text{Tr}(\mathbf{M}^\mathsf{T}\mathbf{M}) \ge \text{Tr}(\mathbf{M}^2)$
等号成立当且仅当系统是确定性的(非消偏的)。
任何物理米勒矩阵都可以分解为基本光学元件的乘积(Lu-Chipman分解):
$\mathbf{M} = \mathbf{M}D \mathbf{M}_R \mathbf{M}\Delta$
其中:
这种分解在分析复杂光学系统和设计渲染算法时非常有用。
将标准体积渲染方程扩展到偏振域需要仔细考虑光的矢量性质。偏振体积渲染方程描述了斯托克斯矢量在参与介质中的传输:
$\mathbf{L}(\mathbf{x}, \omega) = \int_0^\infty \mathbf{T}(\mathbf{x}, \mathbf{x}’) \mathbf{M}(\mathbf{x}’, \omega’, \omega) \mathbf{L}(\mathbf{x}’, \omega’) \text{d}x’ + \mathbf{L}_\text{e}(\mathbf{x}, \omega)$
其中:
这个方程的积分形式可以通过以下微分方程推导:
$\text{d}\mathbf{L}/\text{d}s = -\mathbf{K}\mathbf{L} + \int_{4\pi} \mathbf{M}(\omega’, \omega) \mathbf{L}(\omega’) \text{d}\omega’ + \mathbf{j}_\text{e}$
其中s是沿光线的距离,$\mathbf{j}_\text{e}$是体积发射系数。
定义传输算子$\mathcal{T}$和散射算子$\mathcal{S}$:
$(\mathcal{T}\mathbf{L})(s) = \exp\left(-\int_0^s \mathbf{K}(s’) \text{d}s’\right) \mathbf{L}(0)$
$(\mathcal{S}\mathbf{L})(s) = \int_{4\pi} \mathbf{M}(s, \omega’, \omega) \mathbf{L}(s, \omega’) \text{d}\omega’$
则偏振体积渲染方程可写为算子方程:
$\mathbf{L} = \mathcal{T}\mathbf{L}0 + \int_0^s \mathcal{T}{s,s’}(\mathcal{S}\mathbf{L} + \mathbf{j}_\text{e}) \text{d}s’$
这种形式便于理论分析和数值求解。通过Neumann级数展开:
$\mathbf{L} = \sum_{n=0}^\infty (\mathcal{T}\mathcal{S})^n\left(\mathcal{T}\mathbf{L}0 + \int\mathcal{T}\mathbf{j}\text{e} \text{d}s\right)$
每一项对应n次散射的贡献。
对于缓变的偏振场,可以使用广义球谐函数展开:
$\mathbf{L}(\mathbf{x}, \omega) = \sum_{l=0}^\infty \sum_{m=-l}^l \mathbf{L}{lm}(\mathbf{x}) Y{lm}(\omega)$
其中$\mathbf{L}_{lm}$是斯托克斯矢量系数。散射相位矩阵的展开:
$\mathbf{P}(\omega\cdot\omega’) = \sum_{l=0}^\infty \mathbf{P}_l P_l(\omega\cdot\omega’)$
其中P_l是Legendre多项式,$\mathbf{P}_l$是4×4矩阵系数。
对于Rayleigh散射: $\mathbf{P}_0 = \text{diag}(1, 1, 1, 1)$ $\mathbf{P}_2 = \text{diag}(3/8, 3/8, 3/4, 0)$
高阶项迅速衰减,允许有效截断。
偏振辐射传输满足广义互易定理:
$\mathbf{L}{\text{AB}}(\omega) = \mathbf{R} \mathbf{L}{\text{BA}}(-\omega) \mathbf{R}$
其中 $\mathbf{R} = \text{diag}(1, 1, 1, -1)$ 是反射矩阵,考虑了圆偏振分量的手性反转。
这个性质在验证数值解和设计高效算法时非常重要。
透射矩阵的形式为:
$\mathbf{T}(\mathbf{x}, \mathbf{x}’) = \exp\left(-\int_{\mathbf{x}}^{\mathbf{x}’} \mathbf{K}(s) \text{d}s\right)$
其中 $\mathbf{K}$ 是消光矩阵。对于各向同性介质:
$\mathbf{K} = \sigma_\text{t} \mathbf{I} = \sigma_\text{t} \text{diag}(1, 1, 1, 1)$
这种情况下,偏振态在传播过程中保持不变,只有强度衰减。
对于各向异性介质(如晶体或定向纤维):
$\mathbf{K} = \begin{bmatrix} \sigma_0 & \sigma_1 & \sigma_2 & \sigma_3 \ \sigma_1 & \sigma_4 & \sigma_5 & \sigma_6 \ \sigma_2 & \sigma_5 & \sigma_7 & \sigma_8 \ \sigma_3 & \sigma_6 & \sigma_8 & \sigma_9 \end{bmatrix}$
其中$\sigma_i$是广义消光系数,满足对称性和正定性约束。
消光矩阵的物理意义:
对于非均匀介质,透射矩阵的计算需要路径积分:
$\mathbf{T} = \mathcal{P} \exp\left(-\int \mathbf{K}(s) \text{d}s\right)$
其中$\mathcal{P}$表示路径排序算符。实际计算中,可以使用Magnus展开或分段常数近似。
对于常数消光矩阵,矩阵指数可以通过对角化计算: $\mathbf{K} = \mathbf{Q}\mathbf{\Lambda}\mathbf{Q}^{-1}$ $\exp(-\mathbf{K}t) = \mathbf{Q} \exp(-\mathbf{\Lambda}t) \mathbf{Q}^{-1}$
散射米勒矩阵 $\mathbf{M}(\mathbf{x}’, \omega’, \omega)$ 可以分解为:
$\mathbf{M} = \sigma_\text{s}(\mathbf{x}’) \mathbf{P}(\omega’, \omega)$
其中 $\mathbf{P}$ 是4×4相位矩阵,满足归一化条件:
$\int_{4\pi} P_{00}(\omega’, \omega) \text{d}\omega = 4\pi$
相位矩阵的一般形式依赖于散射几何:
对于球形粒子的Mie散射,相位矩阵具有块对角结构:
$\mathbf{P} = \begin{bmatrix} P_{11} & P_{12} & 0 & 0 \ P_{12} & P_{22} & 0 & 0 \ 0 & 0 & P_{33} & P_{34} \ 0 & 0 & -P_{34} & P_{44} \end{bmatrix}$
其中各元素是散射角θ的函数,由Mie理论给出:
| $P_{11} = ( | S_1 | ^2 + | S_2 | ^2)/2$ |
| $P_{12} = ( | S_2 | ^2 - | S_1 | ^2)/2$ |
S₁和S₂是Mie散射振幅。
Mie散射振幅通过级数展开计算:
$S_1(\theta) = \sum_{n=1}^\infty \frac{2n+1}{n(n+1)} [a_n\pi_n(\cos \theta) + b_n\tau_n(\cos \theta)]$
$S_2(\theta) = \sum_{n=1}^\infty \frac{2n+1}{n(n+1)} [a_n\tau_n(\cos \theta) + b_n\pi_n(\cos \theta)]$
其中aₙ和bₙ是Mie系数:
$a_n = \frac{m\psi_n(mx)\psi’_n(x) - \psi_n(x)\psi’_n(mx)}{m\psi_n(mx)\xi’_n(x) - \xi_n(x)\psi’_n(mx)}$
$b_n = \frac{\psi_n(mx)\psi’_n(x) - m\psi_n(x)\psi’_n(mx)}{\psi_n(mx)\xi’_n(x) - m\xi_n(x)\psi’_n(mx)}$
其中:
对于非球形粒子,使用T矩阵(传输矩阵)方法:
$\mathbf{a} = \mathbf{T} \mathbf{b}$
其中$\mathbf{a}$和$\mathbf{b}$分别是散射和入射场的展开系数。相位矩阵元素:
| $P_{ij}(\theta, \varphi) = \frac{4\pi}{k^2\sigma_\text{s}} \left | \sum T_{mn,m’n’} Y_{mn}(\theta_\text{s}, \varphi_\text{s}) Y^*{m’n’}(\theta\text{i}, \varphi_\text{i})\right | ^2$ |
T矩阵的优势:
在密集介质中,需要考虑相干散射效应。有效相位矩阵:
$\mathbf{P}{\text{eff}} = \mathbf{P}{\text{single}} + f \mathbf{P}_{\text{coherent}}$
其中f是填充因子,$\mathbf{P}_{\text{coherent}}$描述粒子间的干涉效应。
对于各向同性分布的粒子: $\mathbf{P}{\text{coherent}} \propto S(q) \mathbf{P}{\text{single}}$
其中S(q)是结构因子,$q = 4\pi \sin(\theta/2)/\lambda$是散射矢量大小。
对于多次散射,需要迭代求解偏振辐射传输方程。一阶散射近似:
$\mathbf{L}^{(1)}(\mathbf{x}, \omega) = \int_0^\infty \mathbf{T}(\mathbf{x}, \mathbf{x}’) \int_{4\pi} \mathbf{M}(\mathbf{x}’, \omega’, \omega) \mathbf{L}^{(0)}(\mathbf{x}’, \omega’) \text{d}\omega’ \text{d}x’$
高阶散射可以通过Neumann级数展开或蒙特卡洛方法计算。
偏振BRDF是将传统BRDF概念扩展到完整描述偏振光与表面相互作用的数学框架。这种扩展对于准确模拟金属、水面、玻璃等具有强偏振特性的材质至关重要。
偏振BRDF(pBRDF)是一个4×4矩阵函数,将入射斯托克斯矢量映射到反射斯托克斯矢量:
$\mathbf{M}{\text{BRDF}}(\omega\text{i}, \omega_\text{o}) = \begin{bmatrix} m_{00} & m_{01} & m_{02} & m_{03} \ m_{10} & m_{11} & m_{12} & m_{13} \ m_{20} & m_{21} & m_{22} & m_{23} \ m_{30} & m_{31} & m_{32} & m_{33} \end{bmatrix}$
其中$m_{00}$是传统的标量BRDF。矩阵元素的物理意义:
米勒BRDF满足偏振版本的亥姆霍兹互易原理:
$\mathbf{M}{\text{BRDF}}(\omega\text{o}, \omega_\text{i}) = \mathbf{M}^\mathsf{T}{\text{BRDF}}(\omega\text{i}, \omega_\text{o})$
这个约束将独立参数从16个减少到10个。
根据物理对称性,偏振BRDF的一般形式可以写为:
$\mathbf{M}_{\text{BRDF}} = \begin{bmatrix} a & b & 0 & 0 \ b & c & 0 & 0 \ 0 & 0 & d & e \ 0 & 0 & -e & f \end{bmatrix}$
对于各向同性表面。对于各向异性表面,非零元素会出现在其他位置。
物理约束要求:
| $a \ge | b | $ (能量守恒) |
基于实验测量的偏振BRDF可以通过主成分分析(PCA)进行压缩:
$\mathbf{M}{\text{BRDF}} \approx \sum{k=1}^K \alpha_k \mathbf{B}k \otimes \mathbf{A}_k(\omega\text{i}, \omega_\text{o})$
其中$\mathbf{B}_k$是基矩阵,$\mathbf{A}_k$是角度依赖函数,$\alpha_k$是权重系数。
这种分解允许:
对于特定材质类别,可以构建解析模型。例如,基于Fresnel理论的金属模型:
| $\mathbf{M}{\text{metal}} = \frac{D(\mathbf{h}) G(\omega\text{i}, \omega_\text{o}) \mathbf{F}{\text{pol}}(\omega\text{i}, \mathbf{h})}{4 | \mathbf{n}\cdot\omega_\text{i} | \mathbf{n}\cdot\omega_\text{o} | }$ |
其中偏振Fresnel矩阵$\mathbf{F}_{\text{pol}}$依赖于复折射率n + ik:
$\mathbf{F}{\text{pol}} = \begin{bmatrix} F{\text{avg}} & F_{\text{diff}} & 0 & 0 \ F_{\text{diff}} & F_{\text{avg}} & 0 & 0 \ 0 & 0 & F_{\text{cross}} & F_{\text{phase}} \ 0 & 0 & -F_{\text{phase}} & F_{\text{cross}} \end{bmatrix}$
其中:
| $F_{\text{avg}} = ( | r_s | ^2 + | r_p | ^2)/2$ |
| $F_{\text{diff}} = ( | r_p | ^2 - | r_s | ^2)/2$ |
| $F_{\text{cross}} = | r_s | r_p | \cos(\delta)$ |
| $F_{\text{phase}} = | r_s | r_p | \sin(\delta)$ |
实用的偏振BRDF参数化需要考虑:
一个简化的参数化形式:
$\mathbf{M}{\text{BRDF}} = f{\text{spec}} \mathbf{M}{\text{spec}} + f{\text{diff}} \mathbf{M}_{\text{diff}}$
其中f_spec和f_diff是能量分配系数。
一般的偏振BRDF可以分解为多个物理过程的贡献:
$\mathbf{M}{\text{BRDF}} = \mathbf{M}{\text{spec}} + \mathbf{M}{\text{diff}} + \mathbf{M}{\text{subsurface}} + \mathbf{M}_{\text{multiple}}$
其中每个分量都有不同的偏振特性:
镜面分量的典型形式:
| $\mathbf{M}{\text{spec}} = \frac{D(\mathbf{h}) G(\omega\text{i}, \omega_\text{o}) \mathbf{F}(\omega_\text{i}, \mathbf{h})}{4 | \mathbf{n}\cdot\omega_\text{i} | \mathbf{n}\cdot\omega_\text{o} | }$ |
其中$\mathbf{F}$是偏振菲涅尔矩阵。
漫反射分量通常近似为:
$\mathbf{M}{\text{diff}} \approx \rho\text{d}/\pi \cdot \text{diag}(1, \delta, \delta, \delta)$
其中$\delta < 1$表示消偏程度,$\rho_\text{d}$是漫反射率。
对于任意入射偏振态,总反射能量不能超过入射能量:
| $\int_\Omega m_{00}(\omega_\text{i}, \omega) | \mathbf{n}\cdot\omega | \text{d}\omega \le 1$ |
更严格地,对于完全偏振输入:
| $\int_\Omega | \mathbf{M}{\text{BRDF}}(\omega\text{i}, \omega) | _2 | \mathbf{n}\cdot\omega | \text{d}\omega \le 1$ |
这个约束可以通过白炉测试验证:
| $\int_\Omega \mathbf{M}{\text{BRDF}}(\omega\text{i}, \omega) | \mathbf{n}\cdot\omega | \text{d}\omega \le \mathbf{I}$ |
其中$\mathbf{I}$是4×4单位矩阵。
实际测量偏振BRDF需要:
测量协议通常包括:
基于微面元理论的偏振BRDF:
| $\mathbf{M}{\text{microfacet}} = \frac{D(\mathbf{h}) G(\omega\text{i}, \omega_\text{o}) \mathbf{F}(\omega_\text{i}, \mathbf{h})}{4 | \mathbf{n}\cdot\omega_\text{i} | \mathbf{n}\cdot\omega_\text{o} | }$ |
其中菲涅尔矩阵 $\mathbf{F}$ 为:
| $\mathbf{F} = \begin{bmatrix} ( | r_s | ^2 + | r_p | ^2)/2 & ( | r_p | ^2 - | r_s | ^2)/2 & 0 & 0 \ ( | r_p | ^2 - | r_s | ^2)/2 & ( | r_s | ^2 + | r_p | ^2)/2 & 0 & 0 \ 0 & 0 & \text{Re}(r_s^r_p^) & -\text{Im}(r_s^r_p^) \ 0 & 0 & \text{Im}(r_s^r_p^) & \text{Re}(r_s^r_p^) \end{bmatrix}$ |
对于具有复折射率 n + ik 的材料(如金属):
$r_s = \frac{n_1\cos\theta_\text{i} - n_2\cos\theta_\text{t}}{n_1\cos\theta_\text{i} + n_2\cos\theta_\text{t}}$ $r_p = \frac{n_2\cos\theta_\text{i} - n_1\cos\theta_\text{t}}{n_2\cos\theta_\text{i} + n_1\cos\theta_\text{t}}$
其中 $n_2 = n + ik$,透射角 $\theta_\text{t}$ 也是复数。
复菲涅尔系数导致:
对于各向异性表面,法线分布函数D(h)依赖于方位角:
$D(\mathbf{h}, \varphi) = D(\theta_\text{h}, \varphi_\text{h}; \alpha_x, \alpha_y)$
这导致偏振特性随观察方向变化:
遗式的GGX各向异性分布: $D_{\text{GGX}} = \frac{1}{\pi\alpha_x\alpha_y \cos^4\theta_\text{h} \left(1 + \tan^2\theta_\text{h}\left(\left(\frac{\cos\varphi_\text{h}}{\alpha_x}\right)^2 + \left(\frac{\sin\varphi_\text{h}}{\alpha_y}\right)^2\right)\right)^2}$
对于多层材质,总米勒矩阵为各层矩阵的乘积:
$\mathbf{M}{\text{total}} = \mathbf{M}_n \cdot \mathbf{M}{n-1} \cdot \ldots \cdot \mathbf{M}_1$
注意矩阵乘法的顺序很重要,因为米勒矩阵一般不可交换。
对于透明涂层覆盖的表面,需要考虑多次反射:
$\mathbf{M}{\text{coating}} = \mathbf{M}{\text{surface}} + \mathbf{M}{\text{transmit}} \cdot \mathbf{M}{\text{substrate}} \cdot \mathbf{M}{\text{transmit}}’ \cdot (\mathbf{I} - \mathbf{M}{\text{internal}})^{-1}$
其中:
由于多次反射,即使各个层都不产生圆偏振,组合系统仍可能产生圆偏振分量。
当堆叠具有不同主轴方向的各向异性层时:
$\mathbf{M}_{\text{total}} = \mathbf{R}(-\varphi_n) \mathbf{M}_n \mathbf{R}(\varphi_n) \cdot \ldots \cdot \mathbf{R}(-\varphi_1) \mathbf{M}_1 \mathbf{R}(\varphi_1)$
其中 $\mathbf{R}(\varphi)$ 是旋转φ角的米勒旋转矩阵:
$\mathbf{R}(\varphi) = \begin{bmatrix} 1 & 0 & 0 & 0 \ 0 & \cos(2\varphi) & \sin(2\varphi) & 0 \ 0 & -\sin(2\varphi) & \cos(2\varphi) & 0 \ 0 & 0 & 0 & 1 \end{bmatrix}$
这种堆叠可以产生复杂的偏振效应,如螺旋偏振器和光学隔离器。
在双折射材料中,折射率依赖于偏振方向。对于单轴晶体,有两个主折射率:
光线分裂为两条具有不同偏振态的光线。
各向异性介质的介电张量为:
$\mathbf{\varepsilon} = \begin{bmatrix} \varepsilon_x & 0 & 0 \ 0 & \varepsilon_y & 0 \ 0 & 0 & \varepsilon_z \end{bmatrix}$
对于单轴晶体,$\varepsilon_x = \varepsilon_y = n_\text{o}^2$,$\varepsilon_z = n_\text{e}^2$。
给定传播方向 $\mathbf{k}$,有效折射率由折射率椭球决定:
$x^2/n_\text{o}^2 + y^2/n_\text{o}^2 + z^2/n_\text{e}^2 = 1$
与传播方向的交点给出两个可能的折射率值。
对于给定入射方向 $\omega_\text{i}$ 和光轴方向 c,两条折射光线的方向由以下方程确定:
寻常光:遵循标准斯涅尔定律 $n_1 \sin \theta_\text{i} = n_\text{o} \sin \theta_\text{o}$
非常光:修正的斯涅尔定律 $n_1 \sin \theta_\text{i} = n(\theta) \sin \theta_\text{e}$
其中 $n(\theta) = n_\text{o}n_\text{e}/\sqrt{n_\text{o}^2 \sin^2\theta + n_\text{e}^2 \cos^2\theta}$
在双折射材料中,波矢量 $\mathbf{k}$ 和能流方向 $\mathbf{S}$(即光线方向)一般不平行:
$\mathbf{S} = (\varepsilon_0/\mu_0) \text{Re}(\mathbf{E} \times \mathbf{H}^*)$
对于非常光,走离角α定义为:
$\tan \alpha = [(n_\text{e}^2 - n_\text{o}^2)/n_\text{e}^2] \tan \theta$
其中θ是波矢量与光轴的夹角。
通过双折射材料后的偏振态变化可用米勒矩阵描述:
$\mathbf{M}{\text{birefringent}} = \mathbf{R}(-\psi) \mathbf{M}{\text{retarder}}(\delta) \mathbf{R}(\psi)$
其中:
相位延迟矩阵为:
$\mathbf{M}_{\text{retarder}}(\delta) = \begin{bmatrix} 1 & 0 & 0 & 0 \ 0 & 1 & 0 & 0 \ 0 & 0 & \cos \delta & \sin \delta \ 0 & 0 & -\sin \delta & \cos \delta \end{bmatrix}$
双折射可以由外部因素诱导:
应力双折射(光弹性效应): $\Delta n = C\sigma$ 其中C是应力光学系数,σ是应力
电场诱导双折射(Kerr效应): $\Delta n = \lambda KE^2$ 其中K是Kerr常数,E是电场强度
温度依赖性: $n(\lambda,T) = n_0(\lambda) + (\text{d}n/\text{d}T)(T - T_0)$
当光线在双折射材料中沿闭合路径传播时,会获得几何相位(Berry相位):
$\gamma = \oint_C \mathbf{A} \cdot \text{d}\mathbf{l}$
其中$\mathbf{A}$是偏振态空间中的矢势。对于在庞加莱球上的闭合路径:
$\gamma = \Omega/2$
其中Ω是路径所围立体角。
这个效应在:
中起重要作用。
对于空间变化的双折射,偏振态演化遵循Jones矩阵的路径排序积分:
$\mathbf{J}_{\text{total}} = \mathcal{P} \exp\left(\int_0^l \mathbf{m}(s) \text{d}s\right)$
其中$\mathcal{P}$是路径排序算符,$\mathbf{m}(s)$是局部Jones矩阵。
对于缓变的情况,可以使用WKB近似:
$\mathbf{E}(s) \approx \mathbf{E}_0 \sqrt{n_0/n(s)} \exp\left(ik_0\int_0^s n(s’) \text{d}s’\right)$
其中振幅变化由能量守恒决定。
应力诱导双折射: $\Delta n = C_1\sigma_1 + C_2\sigma_2$ 其中$\sigma_1, \sigma_2$是主应力
在计算机图形学中,双折射可用于创建独特的视觉效果:
双折射纹理映射: $\delta(u,v) = 2\pi \Delta n(u,v) d(u,v) / \lambda$
其中(u,v)是纹理坐标,可以编码:
对于N层薄膜系统,使用传输矩阵方法计算偏振反射和透射:
每层的特征矩阵为:
$\mathbf{M}_{\text{layer}} = \begin{bmatrix} \cos \delta_j & (i \sin \delta_j)/\eta_j \ i\eta_j \sin \delta_j & \cos \delta_j \end{bmatrix}$
其中:
对于N层系统,总传输矩阵:
$\mathbf{M}{\text{total}} = \prod{j=1}^N \mathbf{M}j = \mathbf{M}_N \cdot \mathbf{M}{N-1} \cdot \ldots \cdot \mathbf{M}_1$
反射和透射系数:
$r = \frac{m_{11}\eta_0 + m_{12}\eta_0\eta_s - m_{21} - m_{22}\eta_s}{m_{11}\eta_0 + m_{12}\eta_0\eta_s + m_{21} + m_{22}\eta_s}$
$t = \frac{2\eta_0}{m_{11}\eta_0 + m_{12}\eta_0\eta_s + m_{21} + m_{22}\eta_s}$
其中$m_{ij}$是$\mathbf{M}_{\text{total}}$的元素。
布鲁斯特角效应: 在布鲁斯特角$\theta_\text{B} = \arctan(n_2/n_1)$附近,p偏振反射率极小,导致强烈的偏振选择性。
薄膜的光谱响应依赖于:
材料色散: $n(\lambda) = A + B/\lambda^2 + C/\lambda^4$ (Sellmeier方程)
结构色散: 由于干涉条件随波长变化
偏振依赖的色散: s和p偏振的有效折射率不同
薄膜干涉产生的颜色依赖于偏振态:
反射系数: $r_s = \frac{\eta_0M_{11} + \eta_0\eta_sM_{12} - M_{21} - \eta_sM_{22}}{\eta_0M_{11} + \eta_0\eta_sM_{12} + M_{21} + \eta_sM_{22}}$ r_p = 类似表达式(使用p偏振的η值)
颜色计算: $\text{RGB} = \int R(\lambda) \times \text{CIE_XYZ}(\lambda) \text{d}\lambda$
| 其中 $R(\lambda) = | r_s | ^2P_s + | r_p | ^2P_p$,P_s和P_p是入射光的偏振分量。 |
对于各向异性薄膜(如液晶),需要考虑光轴方向:
$\mathbf{M}{\text{anisotropic}} = \mathbf{R}(-\varphi) \mathbf{M}{\text{birefringent}} \mathbf{R}(\varphi)$
其中φ是光轴与参考方向的夹角。
利用偏振信息可以恢复表面法线。对于电介质表面,偏振度与入射角的关系为:
$\text{DoP} = \frac{2 \sin^2\theta \cos \theta \sqrt{n^2 - \sin^2\theta}}{n^2 - \sin^2\theta - n^2 \sin^2\theta + 2\sin^4\theta}$
通过测量不同视角的偏振度,可以推断表面方向。
偏振方向角φ与表面方位角α的关系:
$\varphi = \alpha \pm \pi/2$
这存在π/2的歧义性。结合偏振度信息可以解决:
天顶角计算: $\cos \theta = \frac{\sqrt{(n^2 - 1)(1 - \text{DoP}^2)}}{n^2 + 1 - 2\text{DoP}}$
法线重建: $\mathbf{n} = [\sin \theta \cos \alpha, \sin \theta \sin \alpha, \cos \theta]^\mathsf{T}$
深度积分: $z(x,y) = \iint (p\partial z/\partial x + q\partial z/\partial y) \text{d}x\text{d}y$ 其中 $p = -n_x/n_z, q = -n_y/n_z$
结合多个视角的偏振测量可以提高精度:
法线一致性约束: 最小化$\sum_i ||\mathbf{n}i - \mathbf{n}{\text{consensus}}||^2$
折射率估计: 通过多角度偏振度拟合
鲁棒性增强: 使用RANSAC或鲁棒优化方法
不同材质具有特征性的偏振签名:
金属:高偏振度,相位变化大 电介质:布儒斯特角处偏振度最大 各向异性材料:偏振态随观察角度旋转
偏振特征向量: $\mathbf{f} = [\text{DoLP}(0^\circ), \text{DoLP}(45^\circ), \text{DoLP}(90^\circ), \text{DoLP}(135^\circ), \text{DoCP}]$
利用偏振可以检测常规方法难以察觉的透明物体:
偏振差分成像: $I_{\text{diff}} = |I_\parallel - I_\perp| / (I_\parallel + I_\perp)$
其中$I_\parallel$和$I_\perp$是平行和垂直偏振分量的强度。
散射光通常是部分偏振的,可以通过偏振滤波改善能见度:
去雾模型: $I_{\text{clear}} = (I - A_\infty) / t + A_\infty$
其中透射率t可以从偏振信息估计: $t = 1 - p \times \text{DoP}$
修改BRDF重要性采样以考虑偏振:
$\text{pdf}(\omega) \propto m_{00}(\omega) \times (1 + \mathbf{P}_{\text{expected}} \cdot \text{DoLP}(\omega))$
其中$\mathbf{P}_{\text{expected}}$是期望的偏振度。
结合BRDF和偏振特性的MIS权重:
$w_{\text{pol}}(\omega) = p_{\text{pol}}(\omega) / [\beta_1 p_{\text{brdf}}(\omega) + \beta_2 p_{\text{pol}}(\omega) + \beta_3 p_{\text{uniform}}(\omega)]$
其中:
控制变量: 使用标量辐射度作为控制变量: $\mathbf{L}{\text{cv}} = \mathbf{L} - \beta(L{\text{scalar}} - \langle L_{\text{scalar}}\rangle)$
偏振渲染的GPU优化:
struct PolarizedRay {
float4 stokes; // 斯托克斯矢量
float3 direction;
float wavelength; // 色散考虑
};
float4x4 ComputeMuellerBRDF(float3 wi, float3 wo, Material mat) {
// 高效矩阵计算
// 利用对称性减少计算量
}
本章将偏振光学理论应用于计算机图形学,主要贡献包括:
关键公式总结:
23.1 推导简单电介质表面的米勒矩阵,假设表面光滑且各向同性。
23.2 计算四分之一波片($\delta = \pi/2$)的米勒矩阵,并说明它如何将线偏振光转换为圆偏振光。
23.3 推导双折射晶体中寻常光和非常光的能量分配比例。
23.4 设计一个偏振渲染系统,能够模拟液晶显示器的视角依赖性。考虑多层结构和偏振片的影响。
23.5 推导并实现偏振蒙特卡洛路径追踪算法,包括重要性采样策略。
23.6 分析偏振渲染在逆向工程问题中的条件数,特别是同时恢复形状和材质参数时的不适定性。
23.7 设计一个实时偏振渲染的GPU管线,支持动态场景和交互式材质编辑。
矩阵乘法顺序:米勒矩阵乘法不可交换,错误的顺序会产生非物理结果
坐标系混淆:斯托克斯参数定义依赖于坐标系选择,切换坐标系时需要相应变换
能量不守恒:手动构造的米勒矩阵可能违反能量守恒,需要验证第一行和≤1
数值稳定性:在掠射角附近,菲涅尔系数计算可能不稳定,需要特殊处理
波长依赖性:忽略色散会导致白光下的偏振彩虹效应计算错误
部分相干性:完全相干假设在实际场景中可能不成立,影响干涉效应
采样不足:偏振BRDF的各向异性更强,需要更密集的采样