本章小结
练习题
常见陷阱与错误
在前面的章节中,我们探讨了静态场景的神经辐射场表示。然而,真实世界是动态的——物体运动、光照变化、材质属性随时间演化。本章将神经表示扩展到时间维度,探讨4D时空辐射场的数学框架,并深入研究频域方法如何帮助我们更有效地表示和渲染动态场景。
频域分析不仅提供了理解时空信号的强大工具,还揭示了动态场景的内在结构。通过在频域中工作,我们可以利用信号的稀疏性、分离不同的运动成分,并设计更高效的表示方法。
传统的动态场景表示方法通常将时间维度作为独立的参数处理,例如关键帧动画或运动向量场。这些方法虽然在特定应用中有效,但存在根本性限制:
离散时间表示的限制:关键帧方法只能捕获离散时刻的状态,中间时刻通过插值获得,这可能导致运动不自然或细节丢失。
运动表示的局限性:基于运动向量的方法假设场景可以通过简单的变换描述,难以处理复杂的非刚体变形、拓扑变化或光照变化。
存储效率问题:独立存储每个时刻的3D表示会导致巨大的存储开销,特别是对于长时间序列。
4D神经表示通过将时间作为连续维度集成到辐射场中,提供了一个统一且高效的框架来解决这些挑战。
频域分析在4D表示中扮演着关键角色,其优势包括:
运动模式识别:不同类型的运动(平移、旋转、振动)在频域中有独特的特征,便于分析和分离。
压缩效率:自然场景在频域中通常是稀疏的,特别是在高频区域,这为压缩提供了机会。
插值质量:频域插值可以保持信号的频谱特性,避免时域插值可能产生的伪影。
计算加速:某些操作(如卷积、相关)在频域中可以更高效地计算。
物理洞察:频域表示与物理现象(如波动、振动)有自然的联系,有助于理解和建模动态场景。
本章将从4D时空辐射场的数学定义开始,逐步深入到频域分析和高效表示方法:
第2节:建立4D时空辐射场的数学框架,包括体积渲染方程的时间扩展和连续性约束。
第3节:介绍傅里叶体积渲染,探讨投影-切片定理在4D中的应用,以及如何利用相位相干性进行运动分析。
第4节:详细介绍K-Planes方法,这是一种基于张量分解的高效4D表示,通过将4D张量分解为2D平面的组合来降低复杂度。
第5节:探讨频域中的时间插值技术,包括相位插值和运动补偿方法。
第6节:应用采样理论到4D表示,讨论Nyquist-Shannon定理的推广以及自适应采样策略。
在深入技术细节之前,让我们回顾一些关键的数学概念:
傅里叶变换对:
| Parseval定理:$\int | f(t) | ^2 dt = \int | \tilde{f}(\omega) | ^2 d\omega$ |
张量表示:
采样理论:
完成本章后,您将能够:
将3D辐射场扩展到时间维度,我们定义4D时空辐射场为:
\[L(\mathbf{x}, t, \boldsymbol{\omega}) : \mathbb{R}^3 \times \mathbb{R} \times S^2 \rightarrow \mathbb{R}^3\]其中:
相应的,密度场也成为时变函数: \(\sigma(\mathbf{x}, t) : \mathbb{R}^3 \times \mathbb{R} \rightarrow \mathbb{R}^+\)
这种表示自然地将场景的所有时变特性编码在一个统一的函数中,包括:
4D辐射场不是任意的数学函数,而是受物理定律约束的。这些约束对于获得真实的重建至关重要:
因果性约束:未来的状态不能影响过去 \(L(\mathbf{x}, t, \boldsymbol{\omega}) \perp L(\mathbf{x}, t', \boldsymbol{\omega}), \quad \forall t' > t\)
能量守恒:在没有外部能量输入的封闭系统中 \(\frac{d}{dt} \int_V \int_{S^2} L(\mathbf{x}, t, \boldsymbol{\omega}) d\boldsymbol{\omega} dV = P_{in}(t) - P_{out}(t)\)
光速限制:信息传播速度不能超过光速 \(\|L(\mathbf{x}_1, t, \boldsymbol{\omega}) - L(\mathbf{x}_2, t + \Delta t, \boldsymbol{\omega})\| = 0 \text{ if } \|\mathbf{x}_1 - \mathbf{x}_2\| > c\Delta t\)
完整的4D辐射场问题需要指定:
| Dirichlet条件:$L(\mathbf{x}, t, \boldsymbol{\omega}) | {\mathbf{x} \in \partial V} = L{boundary}(\mathbf{x}, t, \boldsymbol{\omega})$ |
| Neumann条件:$\nabla L \cdot \mathbf{n} | _{\mathbf{x} \in \partial V} = g(\mathbf{x}, t)$ |
对于时刻$t$的一条射线$\mathbf{r}(s) = \mathbf{o} + s\mathbf{d}$,体积渲染方程变为:
\[C(\mathbf{r}, t) = \int_0^{\infty} T(s, t) \sigma(\mathbf{r}(s), t) L(\mathbf{r}(s), t, -\mathbf{d}) ds\]其中透射率: \(T(s, t) = \exp\left(-\int_0^s \sigma(\mathbf{r}(u), t) du\right)\)
在实际实现中,我们将连续积分离散化为黎曼和:
\[C(\mathbf{r}, t) \approx \sum_{i=1}^{N} T_i(t) \alpha_i(t) L_i(t)\]其中:
对于动态场景,采样策略需要考虑时间维度:
时空自适应采样:基于场景的时空梯度动态调整采样密度 \(\rho(\mathbf{x}, t) = \rho_0 \cdot \max\left(1, \|\nabla_{x,t} \sigma\|_2 / \tau\right)\)
实际实现中,梯度可以通过有限差分近似: \(\nabla_{x,t} \sigma \approx \left(\frac{\partial \sigma}{\partial x}, \frac{\partial \sigma}{\partial y}, \frac{\partial \sigma}{\partial z}, \frac{\partial \sigma}{\partial t}\right)\)
其中时间梯度尤其重要,它指示了场景变化的速度。
运动感知采样:沿运动轨迹增加采样点 \(\mathbf{s}_i(t) = \mathbf{s}_i(0) + \int_0^t \mathbf{v}(\mathbf{s}_i(\tau), \tau) d\tau\)
对于快速运动的区域,需要更密集的采样以避免运动模糊和采样不足。
重要性采样扩展到时间维度: \(p(\mathbf{x}, t) \propto \sigma(\mathbf{x}, t) \cdot \|L(\mathbf{x}, t, -\mathbf{d})\| \cdot \left(1 + \left\|\frac{\partial L}{\partial t}\right\|\right)\)
这确保了在视觉上重要且快速变化的区域获得更多采样。
层次时空采样:
物理世界的连续性给4D辐射场带来了额外的约束:
时间连续性(Lipschitz连续): \(\|L(\mathbf{x}, t_1, \boldsymbol{\omega}) - L(\mathbf{x}, t_2, \boldsymbol{\omega})\| \leq L_t |t_1 - t_2|\) 其中$L_t$是时间Lipschitz常数
这个约束防止了物理上不可能的瞬时变化,如物体的瞬间传送或颜色的突变。
运动连续性(对于刚体运动): \(L(\mathbf{x}, t, \boldsymbol{\omega}) = L(\mathbf{R}(t)\mathbf{x} + \mathbf{t}(t), 0, \mathbf{R}(t)\boldsymbol{\omega})\) 其中$\mathbf{R}(t)$和$\mathbf{t}(t)$描述刚体变换
对于非刚体运动,这可以推广为: \(L(\mathbf{x}, t, \boldsymbol{\omega}) = L(\mathbf{W}(\mathbf{x}, t), 0, \mathbf{J}_{\mathbf{W}}^T\boldsymbol{\omega})\) 其中$\mathbf{W}$是形变场,$\mathbf{J}_{\mathbf{W}}$是其雅可比矩阵。
光流约束(亮度恒定假设): \(\frac{\partial L}{\partial t} + (\mathbf{v} \cdot \nabla)L = S(\mathbf{x}, t)\) 其中$\mathbf{v}$是速度场,$S$是源项(如光照变化)
展开为分量形式: \(\frac{\partial L}{\partial t} + v_x\frac{\partial L}{\partial x} + v_y\frac{\partial L}{\partial y} + v_z\frac{\partial L}{\partial z} = S(\mathbf{x}, t)\)
当$S = 0$时,这就是经典的光流方程。
能量守恒: \(\int_{\mathbb{R}^3} \int_{S^2} L(\mathbf{x}, t, \boldsymbol{\omega}) d\boldsymbol{\omega} d\mathbf{x} = E(t)\) 其中$E(t)$是场景的总能量,对于封闭系统应保持恒定
实际上,由于吸收和散射,通常有: \(\frac{dE}{dt} = -\int_V \alpha(\mathbf{x}, t) dV\) 其中$\alpha$是吸收系数。
动量守恒(对于流体和粒子系统): \(\frac{\partial}{\partial t}(\rho \mathbf{v}) + \nabla \cdot (\rho \mathbf{v} \otimes \mathbf{v}) = -\nabla p + \mathbf{f}_{ext}\)
这在模拟烟雾、火焰等参与介质时特别重要。
相干性约束: 时间相邻帧之间应该保持某种程度的相似性: \(\mathcal{C}(t, t+\Delta t) = \frac{\langle L(\cdot, t), L(\cdot, t+\Delta t) \rangle}{\|L(\cdot, t)\| \|L(\cdot, t+\Delta t)\|} > \theta\)
其中$\theta$是相干性阈值,通常接近1。
最直接的方法是使用神经网络直接建模: \((\sigma, \mathbf{c}) = \Phi_\theta(\mathbf{x}, t)\)
优点:表达能力强 缺点:难以施加物理约束
将时空变化分解为不同成分: \(L(\mathbf{x}, t, \boldsymbol{\omega}) = L_{static}(\mathbf{x}, \boldsymbol{\omega}) + L_{dynamic}(\mathbf{x}, t, \boldsymbol{\omega})\)
或者更细粒度的分解: \(L = L_{ambient} + L_{diffuse}(t) + L_{specular}(t) + L_{transient}(t)\)
通过形变场$\mathbf{W}(\mathbf{x}, t)$将动态场景映射到正则空间: \(L(\mathbf{x}, t, \boldsymbol{\omega}) = L_{canonical}(\mathbf{W}(\mathbf{x}, t), \boldsymbol{\omega})\)
这种方法特别适合处理非刚体变形,如人体运动。
直接存储4D辐射场面临严峻的计算挑战:
| 神经表示:$O( | \theta | )$,与场景复杂度解耦 |
其中$\Phi_{eval}$是神经网络评估的复杂度。
| 梯度计算:$O( | \theta | \times N_{rays} \times N_{samples})$ |
| 参数更新:$O( | \theta | )$ |
为了获得合理的4D重建,需要适当的正则化:
时间平滑正则化: \(\mathcal{L}_{smooth} = \int \int \left\|\frac{\partial^2 L}{\partial t^2}\right\|^2 d\mathbf{x} dt\)
场景流正则化: \(\mathcal{L}_{flow} = \int \int \|\nabla \times \mathbf{v}(\mathbf{x}, t)\|^2 d\mathbf{x} dt\) 鼓励无旋流场(适用于大多数自然运动)
稀疏性正则化: \(\mathcal{L}_{sparse} = \int \int \|\mathbf{v}(\mathbf{x}, t)\|_1 d\mathbf{x} dt\) 鼓励静止区域保持静止
时间一致性正则化: \(\mathcal{L}_{consistency} = \sum_{t} \|C(\mathbf{r}, t) - \hat{C}(\mathbf{r}, t)\|^2\) 其中$\hat{C}$是通过时间传播预测的颜色
傅里叶分析为理解和处理4D时空辐射场提供了强大的数学工具。在频域中,许多复杂的时空现象变得更加清晰和易于处理。
对于4D时空辐射场,我们定义其傅里叶变换为:
\[\tilde{L}(\mathbf{k}, \omega_t, \boldsymbol{\omega}) = \int_{\mathbb{R}^3} \int_{\mathbb{R}} L(\mathbf{x}, t, \boldsymbol{\omega}) e^{-2\pi i(\mathbf{k} \cdot \mathbf{x} + \omega_t t)} d\mathbf{x} dt\]其中:
逆变换给出: \(L(\mathbf{x}, t, \boldsymbol{\omega}) = \int_{\mathbb{R}^3} \int_{\mathbb{R}} \tilde{L}(\mathbf{k}, \omega_t, \boldsymbol{\omega}) e^{2\pi i(\mathbf{k} \cdot \mathbf{x} + \omega_t t)} d\mathbf{k} d\omega_t\)
| $ | \omega_t | $大:快速变化(如振动、闪烁) |
线性性: \(\mathcal{F}\{aL_1 + bL_2\} = a\tilde{L}_1 + b\tilde{L}_2\)
平移定理: \(\mathcal{F}\{L(\mathbf{x} - \mathbf{x}_0, t - t_0)\} = \tilde{L}(\mathbf{k}, \omega_t) e^{-2\pi i(\mathbf{k} \cdot \mathbf{x}_0 + \omega_t t_0)}\)
缩放定理: \(\mathcal{F}\{L(a\mathbf{x}, bt)\} = \frac{1}{|ab|^3} \tilde{L}(\mathbf{k}/a, \omega_t/b)\)
卷积定理: \(\mathcal{F}\{L_1 * L_2\} = \tilde{L}_1 \cdot \tilde{L}_2\)
Parseval定理(能量守恒): \(\int \int |L(\mathbf{x}, t)|^2 d\mathbf{x} dt = \int \int |\tilde{L}(\mathbf{k}, \omega_t)|^2 d\mathbf{k} d\omega_t\)
由于实际信号是有限长度的,我们常使用窗口傅里叶变换(STFT):
\[\tilde{L}_{win}(\mathbf{k}, \omega_t, \mathbf{x}_0, t_0) = \int \int L(\mathbf{x}, t) w(\mathbf{x} - \mathbf{x}_0, t - t_0) e^{-2\pi i(\mathbf{k} \cdot \mathbf{x} + \omega_t t)} d\mathbf{x} dt\]其中$w$是窗函数,常用的包括:
窗口大小决定了时频分辨率的权衡:
经典的投影-切片定理是计算机断层成像(CT)的理论基础。在4D中,这个定理有更丰富的结构:
定理(4D投影-切片):沿方向$\mathbf{n}$在时刻$t$的2D投影图像的2D傅里叶变换,等于4D傅里叶体积在特定3D超平面上的切片。
设投影操作符$\mathcal{P}_{\mathbf{n},t}$定义为: \(p(u, v, t) = \int_{-\infty}^{\infty} L(u\mathbf{u} + v\mathbf{v} + s\mathbf{n}, t, -\mathbf{n}) \sigma(u\mathbf{u} + v\mathbf{v} + s\mathbf{n}, t) ds\)
其中${\mathbf{u}, \mathbf{v}, \mathbf{n}}$构成正交基。
对投影进行2D傅里叶变换: \(\tilde{p}(k_u, k_v, t) = \int \int p(u, v, t) e^{-2\pi i(k_u u + k_v v)} du dv\)
代入投影定义并交换积分顺序: \(\tilde{p}(k_u, k_v, t) = \int_{-\infty}^{\infty} \tilde{L}(k_u\mathbf{u} + k_v\mathbf{v}, 0, -\mathbf{n}) e^{-2\pi i \omega_t t} d\omega_t\)
这正是4D傅里叶体积在超平面$k_\parallel = 0$上的切片。
利用投影-切片定理,可以从多个视角的投影重建4D体积:
体积渲染方程在频域中有优雅的表达形式。考虑简化情况(忽略散射),渲染方程可写为:
\[C(\mathbf{r}, t) = \int_0^{\infty} e^{-\tau(s, t)} \sigma(\mathbf{r}(s), t) L(\mathbf{r}(s), t, -\mathbf{d}) ds\]其中光学深度: \(\tau(s, t) = \int_0^s \sigma(\mathbf{r}(u), t) du\)
在频域中,指数衰减变为卷积:
\[\tilde{C}(\mathbf{k}_\perp, \omega_t) = \mathcal{F}\{e^{-\tau}\} * \tilde{S}(\mathbf{k}, \omega_t)\]其中源项$S = \sigma \cdot L$。
对于薄介质近似($\tau \ll 1$),有: \(\tilde{C}(\mathbf{k}_\perp, \omega_t) \approx \tilde{S}(\mathbf{k}_\perp, 0, \omega_t) - \tilde{\tau} * \tilde{S}\)
频域分析最强大的应用之一是运动分析。不同类型的运动在频域中有特征性的表现:
对于匀速平移$\mathbf{x}’ = \mathbf{x} + \mathbf{v}t$:
\[\tilde{L}'(\mathbf{k}, \omega_t) = \tilde{L}(\mathbf{k}, \omega_t - \mathbf{k} \cdot \mathbf{v})\]这是频域中的多普勒效应。当观察固定频率$\omega_t$时,相当于相位调制: \(\tilde{L}'(\mathbf{k}, \omega_t) = \tilde{L}(\mathbf{k}, \omega_t) e^{-2\pi i \mathbf{k} \cdot \mathbf{v} / \omega_t}\)
对于绕轴$\boldsymbol{\omega}$的旋转,角速度$|\boldsymbol{\omega}|$:
\[\tilde{L}'(\mathbf{k}, \omega_t) = \sum_{n=-\infty}^{\infty} J_n\left(\frac{|\mathbf{k} \times \boldsymbol{\omega}|}{|\boldsymbol{\omega}|}\right) \tilde{L}(\mathbf{R}_n\mathbf{k}, \omega_t - n|\boldsymbol{\omega}|)\]其中$J_n$是贝塞尔函数,$\mathbf{R}_n$是旋转算子。
对于周期$T$的运动,频谱在时间频率上呈现离散峰:
\[\tilde{L}(\mathbf{k}, \omega_t) = \sum_{n=-\infty}^{\infty} \tilde{L}_n(\mathbf{k}) \delta(\omega_t - 2\pi n/T)\]基于频域分析,可以分离不同的运动成分:
静态/动态分离: \(L_{static}(\mathbf{x}) = \int \tilde{L}(\mathbf{k}, 0, \boldsymbol{\omega}) e^{2\pi i \mathbf{k} \cdot \mathbf{x}} d\mathbf{k}\) \(L_{dynamic}(\mathbf{x}, t) = L(\mathbf{x}, t) - L_{static}(\mathbf{x})\)
多运动分解:使用独立成分分析(ICA)或稀疏编码在频域分离不同运动模式
频域表示允许我们设计各种滤波器来增强或抑制特定的时空模式:
低通滤波(运动平滑): \(H_{LP}(\omega_t) = \frac{1}{1 + (\omega_t/\omega_c)^{2n}}\)
带通滤波(提取特定频率运动): \(H_{BP}(\omega_t) = \exp\left(-\frac{(\omega_t - \omega_0)^2}{2\sigma_\omega^2}\right)\)
陷波滤波(去除周期性噪声): \(H_{notch}(\omega_t) = 1 - \exp\left(-\frac{(\omega_t - \omega_{noise})^2}{2\sigma_{notch}^2}\right)\)
各向同性滤波: \(H_{iso}(\mathbf{k}) = \exp\left(-\frac{|\mathbf{k}|^2}{2\sigma_k^2}\right)\)
方向性滤波(增强特定方向的结构): \(H_{dir}(\mathbf{k}) = \cos^{2n}\angle(\mathbf{k}, \mathbf{k}_0)\)
运动自适应滤波: \(H(\mathbf{k}, \omega_t) = \exp\left(-\frac{(\omega_t - \mathbf{k} \cdot \mathbf{v}_{est})^2}{2\sigma^2}\right)\)
这种滤波器沿估计的运动轨迹保持锐利,而在垂直方向上平滑。
4D FFT的计算复杂度:
实际实现策略:
4D数据的内存需求巨大。优化策略包括:
压缩感知:利用信号在频域的稀疏性 \(\min_{\tilde{L}} \|\tilde{L}\|_1 \text{ s.t. } \|\mathcal{A}\tilde{L} - \mathbf{y}\|_2 < \epsilon\)
低秩近似:将4D张量分解为低秩因子的乘积
自适应采样:在频域中非均匀采样,重要区域密集采样
K-Planes方法基于一个关键观察:4D时空信号通常具有低秩结构。通过将4D张量分解为2D平面的组合,我们可以大幅降低存储和计算复杂度。
K-Planes将4D辐射场分解为多个2D特征平面的外积:
\[f(\mathbf{x}, t) = \sum_{i=1}^{R} \sum_{j \in \{xy, xz, yz, xt, yt, zt\}} \alpha_{ij} P_{ij}(\pi_j(\mathbf{x}, t))\]其中:
从张量分解的角度,K-Planes可以视为一种特殊的CP分解(Canonical Polyadic Decomposition)的变体:
\[\mathcal{T} \approx \sum_{r=1}^{R} \mathbf{a}_r \otimes \mathbf{b}_r \otimes \mathbf{c}_r \otimes \mathbf{d}_r\]但K-Planes通过共享某些维度的因子来进一步压缩表示。
不同的特征组合策略对应不同的假设:
乘法组合(适用于密度场): \(\sigma(\mathbf{x}, t) = \prod_{j} \exp(P_j^{\sigma}(\pi_j(\mathbf{x}, t)))\)
加法组合(适用于颜色场): \(\mathbf{c}(\mathbf{x}, t) = \sum_{j} P_j^{c}(\pi_j(\mathbf{x}, t))\)
混合组合: \(f(\mathbf{x}, t) = MLP\left(\bigoplus_{j} P_j(\pi_j(\mathbf{x}, t))\right)\) 其中$\bigoplus$表示特征连接
相比于完整的4D网格:
当$R \ll N$时,这提供了显著的压缩。
在频域中,时间插值可以通过相位调整实现。对于两个时刻$t_1$和$t_2$之间的插值:
\[\tilde{L}(\mathbf{k}, \omega_t, t) = \tilde{L}(\mathbf{k}, \omega_t, t_1) e^{i\phi(\omega_t)(t-t_1)/(t_2-t_1)}\]其中相位差: \(\phi(\omega_t) = \arg\left(\frac{\tilde{L}(\mathbf{k}, \omega_t, t_2)}{\tilde{L}(\mathbf{k}, \omega_t, t_1)}\right)\)
对于已知运动场$\mathbf{v}(\mathbf{x}, t)$,频域运动补偿可表示为:
\[\tilde{L}_{comp}(\mathbf{k}, \omega_t) = \tilde{L}(\mathbf{k}, \omega_t) \exp\left(2\pi i \int \mathbf{k} \cdot \mathbf{v}(\mathbf{x}, t) \delta(\mathbf{k} - \nabla_{\mathbf{x}}\phi) dt\right)\]这允许我们在频域中直接补偿运动,而无需在空间域进行昂贵的扭曲操作。
利用小波变换或多分辨率分析,我们可以将时间信号分解为不同尺度:
\[L(\mathbf{x}, t, \boldsymbol{\omega}) = \sum_{j} \sum_{k} c_{jk}(\mathbf{x}, \boldsymbol{\omega}) \psi_{jk}(t)\]其中$\psi_{jk}$是小波基函数,$j$是尺度索引,$k$是平移索引。
这种分解允许:
频域插值需要注意数值稳定性问题:
对于带限的4D信号$L(\mathbf{x}, t, \boldsymbol{\omega})$,如果其傅里叶变换满足: \(\tilde{L}(\mathbf{k}, \omega_t, \boldsymbol{\omega}) = 0, \quad \forall |\mathbf{k}| > \mathbf{B}, |\omega_t| > \Omega_t\)
则最小采样率为:
实际场景中,空间和时间带宽存在权衡关系。对于固定的总采样预算$N_{total}$:
\[N_{spatial}^3 \times N_{temporal} = N_{total}\]最优分配取决于信号特性:
基于局部频谱分析的自适应采样:
局部频谱估计: \(S_{local}(\mathbf{x}_0, t_0) = \left|\mathcal{F}_{local}\{L\}(\mathbf{k}, \omega_t)\right|^2\)
采样密度调整: \(\rho(\mathbf{x}, t) = \rho_0 \cdot \max\left(1, \frac{\|\nabla_{\mathbf{x},t} S_{local}\|}{\tau}\right)\)
其中$\tau$是阈值参数。
对于4D重建,理想的低通滤波器为:
\[H_{ideal}(\mathbf{k}, \omega_t) = \begin{cases} 1 & \text{if } |\mathbf{k}| < \mathbf{B}, |\omega_t| < \Omega_t \\ 0 & \text{otherwise} \end{cases}\]实际中使用可分离的窗函数: \(H(\mathbf{k}, \omega_t) = h_x(k_x)h_y(k_y)h_z(k_z)h_t(\omega_t)\)
常用选择包括:
本章探讨了4D神经表示和频域方法在动态场景渲染中的应用。关键概念包括:
这些技术共同构成了现代动态神经渲染的理论基础,在保持渲染质量的同时大幅提升了效率。
练习8.1 推导4D体积渲染方程中透射率$T(s,t)$的时间导数$\frac{\partial T}{\partial t}$。
练习8.2 证明对于纯平移运动$\mathbf{x}’ = \mathbf{x} + \mathbf{v}t$,频域表示满足: \(\tilde{L}'(\mathbf{k}, \omega_t) = \tilde{L}(\mathbf{k}, \omega_t) e^{-2\pi i \mathbf{k} \cdot \mathbf{v} / \omega_t}\)
练习8.3 对于K-Planes表示,计算查询一个4D点$(x, y, z, t)$所需的内存访问次数和浮点运算次数。
练习8.4 设计一个自适应K-Planes方法,能够根据场景复杂度自动调整不同平面的分辨率。描述你的算法并分析其复杂度。
练习8.5 推导频域中进行运动模糊渲染的公式。假设在曝光时间$[0, T]$内,场景以速度$\mathbf{v}(\mathbf{x}, t)$运动。
练习8.6 考虑一个周期运动场景(如旋转的风扇)。如何修改K-Planes表示来高效编码这种周期性?给出数学公式和存储分析。
问题:采样率不足导致频域混叠,表现为时间闪烁或空间摩尔纹。
解决方案:
问题:频域插值时,相位差超过$\pi$导致错误的展开。
调试技巧:
# 正确的相位展开
phase_diff = np.angle(F_t2 / F_t1)
phase_diff = np.unwrap(phase_diff) # 关键步骤
问题:不同平面的特征未正确对齐,导致重建伪影。
最佳实践:
问题:快速运动物体在插值帧中出现重影。
解决方案:
问题:频域计算中的数值误差累积。
预防措施: