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

论文阅读笔记——EWA Volume Splatting

EWA 论文

背景

在这里插入图片描述
光强公式
I λ ( x ^ ) = ∫ 0 L c λ ( x ^ , ξ ) g ( x ^ , ξ ) e − ∫ 0 ξ g ( x ^ , μ ) d μ d ξ ( 1 ) I_\lambda(\hat{x})=\int_0^Lc_\lambda(\hat{x},\xi)g(\hat{x},\xi)e^{-\int_0^\xi g(\hat{x},\mu)d\mu}d\xi \qquad \qquad (1) Iλ(x^)=0Lcλ(x^,ξ)g(x^,ξ)e0ξg(x^,μ)dμdξ(1)

  • I λ ( x ^ ) I_λ(\hat{x}) Iλ(x^):波长为 λλ 的光线在屏幕坐标 x ^ \hat{x} x^ 处的光强。
  • c λ ( x ^ , ξ ) c_\lambda(\hat{x},\xi) cλ(x^,ξ):发射系数,表示在位置 ξ 处沿光线发射的光强。
  • g ( x ^ , ξ ) g(\hat{x},\xi) g(x^,ξ):消光函数,表示光线在位置 ξ 处被吸收的速率。
  • 指数项 e − ∫ 0 ξ g ( x ^ , μ ) d μ d ξ e^{-\int_0^\xi g(\hat{x},\mu)d\mu}d\xi e0ξg(x^,μ)dμdξ:衰减因子,表示光线从起点到 ξ 处的衰减。

然后假设消光函数是离散的:
g ( x ) = ∑ k g k r k ( x ) ( 2 ) g(x)=\sum_kg_kr_k(x) \qquad \qquad (2) g(x)=kgkrk(x)(2)

  • r k ( x ) r_k(x) rk(x) 是第 k 个粒子的重建核函数

再用泰勒展开的前两项近似指数函数,即 e x ≈ 1 − x e^x ≈ 1- x ex1x,忽略自遮挡,认为在核函数区域内的发射系数 c λ c_\lambda cλ 是常数,可得下式:
I λ ( x ^ ) = ∑ k c λ k ( x ^ ) g k q k ( x ^ ) ∏ j = 0 k − 1 ( 1 − g j q j ( x ^ ) ) ( 3 ) q k ( x ^ ) = ∫ R r k ( x ^ , x 2 ) d x 2 ( 4 ) \begin{aligned} I_\lambda(\hat{x})=\sum_kc_{\lambda k}(\hat{x})g_kq_k(\hat{x})\prod_{j=0}^{k-1}(1-g_jq_j(\hat{x})) \qquad \qquad (3) \\q_k(\hat{x})=\int_Rr_k(\hat{x},x_2)dx_2 \qquad \qquad (4) \end{aligned} Iλ(x^)=kcλk(x^)gkqk(x^)j=0k1(1gjqj(x^))(3)qk(x^)=Rrk(x^,x2)dx2(4)

  • q k ( x ^ ) q_k(\hat{x}) qk(x^) :核函数 r k ( x ) r_k(x) rk(x) 沿视线射线的积分,称为足迹函数(Footprint Function)
  • x2:表示投影中心到观察射线上某点的欧几里得距离。

沿着观察光线的每个采样点都是可以通过二维卷积计算出,而光线投射方法需要对每个采样点进行三维卷积;通过预积分核函数,将三维卷积转化为了二维卷积,这也是 splatting 的高效之处。

EWA

Background

对于高频信号(颜色、动画等)如果采样频率不足,会出现混叠,导致锯齿状、视觉伪影等。从信号处理而言,在连续函数被采样到采样网络之前,对其进行带限处理。
采用一个低通滤波器 h ( x ^ ) h(\hat{x}) h(x^) I λ ( x ^ ) I_\lambda(\hat{x}) Iλ(x^) 进行卷积:
( I λ ⊗ h ) ( x ^ ) = ∫ R 2 ∑ k c λ k ( η ) g k q k ( η ) ∏ j = 0 k − 1 ( 1 − g j q j ( η ) ) h ( x ^ − η ) d η . ( 5 ) (I_{\lambda}\otimes h)(\hat{\mathbf{x}})=\int_{\mathbb{R}^{2}}\sum_{k}c_{\lambda k}(\eta)g_{k}q_{k}(\eta)\prod_{j=0}^{k-1}\left(1-g_{j}q_{j}(\eta)\right)h(\hat{\mathbf{x}}-\eta)d\eta. \qquad \qquad (5) (Iλh)(x^)=R2kcλk(η)gkqk(η)j=0k1(1gjqj(η))h(x^η)dη.(5)
尽管式(5)是一个连续函数,但在实际处理中,这个函数只能在离散处(像素中心)求值,故而做两个假设:1)对 q k q_k qk 的支持区域内所有 X ^ \hat{X} X^ c λ k ( X ^ ) ≈ c λ k c_{\lambda k}(\hat{X}) ≈ c_{\lambda k} cλk(X^)cλk 。2)每个重建核的完整三维支持区域内发射系数恒定(抗锯齿的常见方法)。此外,假设衰减系数在每个足迹函数的支持中有一个近似恒定值 o k o_k ok
∏ j = 0 k − 1 ( 1 − g j q j ( η ) ≈ o k ( 6 ) \prod_{j=0}^{k-1}(1-g_{j}q_{j}(\eta)≈ o_k \qquad \qquad (6) j=0k1(1gjqj(η)ok(6)
由此将式(5)改写为:
( I λ ⊗ h ) ( x ^ ) = ∑ k c λ k o k g k ( q k ⊗ h ) ( x ^ ) ( 7 ) (I_{\lambda}\otimes h)(\hat{\mathbf{x}})=\quad\sum_kc_{\lambda k}o_kg_k(q_k\otimes h)(\hat{\mathbf{x}}) \qquad \qquad (7) (Iλh)(x^)=kcλkokgk(qkh)(x^)(7)
假设: ρ k ( X ^ ) = ( q k ⊗ h ) ( x ^ ) \rho_k(\hat{X})=(q_k\otimes h)(\hat{x}) ρk(X^)=(qkh)(x^) 是一个理想的重采样滤波器,结合了足迹函数 q k q_k qk 和低通核 h。

EWA Resampler

选择椭圆高斯核作为重建核和低通滤波器:

  • 高斯函数在仿射和卷积下封闭,沿着一个坐标轴积分一个 3D 高斯函数得到一个 2D 高斯函数
    定义以 p 为中心,方差矩阵为 V 的椭圆高斯函数: ∣ V ∣ |V| V 是 V 的行列式
    G V ( x − p ) = 1 2 π ∣ V ∣ 1 2 e − 1 2 ( x − p ) T V − 1 ( x − p ) ( 8 ) \mathcal{G}_V(x-p)= \frac{1}{2\pi |V|^{\frac{1}{2}}}e^{-\frac{1}{2}(x-p)^TV^{-1}(x-p)} \qquad \qquad (8) GV(xp)=2πV211e21(xp)TV1(xp)(8)

在体绘制核的情况下, G V \mathcal{G_V} GV 是一个 3D 函数,V 是一个 3×3 的对称矩阵,x 和 p 是列向量 ( x 0 ; x 1 ; x 2 ) T (x_0;x_1;x_2)^T (x0;x1;x2)T ( p 0 ; p 1 ; p 2 ) T (p_0;p_1;p_2)^T (p0;p1;p2)T

定义仿射变换 Φ ( x ) = M x + c \Phi(x)=Mx+c Φ(x)=Mx+c,将 x = Φ − 1 ( u ) x=\Phi^{-1}(u) x=Φ1(u) 代入式(8),对具有方差矩阵的 V 和 Y 进行卷积,会得到一个具有方差矩阵 V+Y 的高斯函数,并且沿着一个坐标轴积分可得:
∫ R G V ( x − p ) d x 2 = G V ^ ( x ^ − x ^ ) ( 9 ) V = ( a b c b d e c e f ) ⇔ ( a b b d ) = V ^ \begin{aligned} &\int_R\mathcal{G}_V(x-p)dx_2=\mathcal{G}_{\hat{V}}(\hat{x}-\hat{x}) \qquad \qquad (9) \\&V=\begin{pmatrix}a&b&c\\b&d&e\\c&e&f\end{pmatrix} \Leftrightarrow \begin{pmatrix}a&b\\b&d\end{pmatrix} = \hat{V} \end{aligned} RGV(xp)dx2=GV^(x^x^)(9)V= abcbdecef (abbd)=V^

定义高斯重建核 r k ′ ′ ( t ) = G V K ′ ′ ( t − t k ) r^{''}_k(t)=\mathcal{G}_{V_K^{''}}(t-t_k) rk′′(t)=GVK′′(ttk) t k t_k tk 是对象空间中体素的位置。用向量 u = ( u 0 ; u 1 ; u 2 ) T u=(u_0;u_1;u_2)^T u=(u0;u1;u2)T 表示相机坐标,仿射映射 u = ϕ ( t ) u=\phi(t) u=ϕ(t) 将对象坐标转换为相机坐标,称为视图转换,利用以上将重建核转换到相机空间:
G V k ′ ′ ( φ − 1 ( u ) − t k ) = 1 ∣ W − 1 ∣ G V k ′ ( u − u k ) = r k ′ ( u ) ( 10 ) 相机坐标系下协方差矩阵: V k ′ = W V k ′ ′ W T ( 11 ) \begin{aligned} \mathcal{G}_{\mathbf{V}_k^{\prime\prime}}(\varphi^{-1}(\mathbf{u})-\mathbf{t}_k)=\frac{1}{|\mathbf{W}^{-1}|}\mathcal{G}_{\mathbf{V}_k^{\prime}}(\mathbf{u}-\mathbf{u}_k)=r_k^{\prime}(\mathbf{u}) \qquad \qquad (10) \\\text{相机坐标系下协方差矩阵:} V_k^{'}=WV_k^{''}W^T \qquad \qquad (11) \end{aligned} GVk′′(φ1(u)tk)=W11GVk(uuk)=rk(u)(10)相机坐标系下协方差矩阵:Vk=WVk′′WT(11)
由于相机空间到射线空间的映射不是仿射的(Ax+b),故而为了解决引入了局部仿射近似 m u k m_{u_k} muk,在 u k u_k uk 处的泰勒展开前两项为:
m u k ( u ) = x k + J u k ⋅ ( u − u k ) J u k = ∂ m ∂ u ( u k ) ( 12 ) m_{u_k}(u)=x_k+J_{u_k} · (u-u_k) \qquad J_{u_k}=\frac{\partial m}{\partial u}(u_k) \qquad \qquad (12) muk(u)=xk+Juk(uuk)Juk=um(uk)(12)
代入(10)将重建核映射到射线空间得到:
r k ( x ) = 1 ∣ W − 1 ∣ G V k ′ ( m − 1 ( x ) − u k ) = 1 ∣ W − 1 ∣ ∣ J − 1 ∣ G V k ( x − x k ) ( 13 ) V k = J V k ′ J T = J W V k ′ ′ W T J T ( 14 ) \begin{aligned} r_k(x) =\frac{1}{|W^{-1}|}\mathcal{G}_{V_k^{'}}(m^{-1}(x)-u_k)=\frac{1}{|W^{-1}||J^{-1}|}\mathcal{G}_{V_k}(x-x_k) \qquad \qquad (13) \\V_k=JV_k^{'}J^T=JWV_k^{''}W^TJ^T \qquad \qquad (14) \end{aligned} rk(x)=W11GVk(m1(x)uk)=W1∣∣J11GVk(xxk)(13)Vk=JVkJT=JWVk′′WTJT(14)
V k V_k Vk 是射线空间下的协方差矩阵。
在这里插入图片描述

传统方法处理椭圆形核(计算消耗大且存在精度损失):

  1. 计算投影范围
  2. 映射到圆形 Footprint Function
    本文通过提出了方差矩阵的方法,对于每个体素直接计算其方差矩阵而不是通过投影和映射,只需要一个额外的 3×3 矩阵乘法,即可处理不规则椭圆形核。

根据式(4)对(12)的高斯重建核进行积分,得到高斯足迹函数 q k q_k qk
q k ( x ^ ) = ∫ R 1 ∣ W − 1 ∣ ∣ J − 1 ∣ G V k ( x ^ − x ^ k , x 2 − x k 2 ) d x 2 = 1 ∣ W − 1 ∣ ∣ J − 1 ∣ G V ^ k ( x ^ − x ^ k ) ( 15 ) q_k(\hat{x})=\int_R\frac{1}{|W^{-1}||J^{-1}|}\mathcal{G}_{V_k}(\hat{x}-\hat{x}_k,x_2-x_{k2})dx_2=\frac{1}{|W^{-1}||J^{-1}|}\mathcal{G}_{\hat{V}_k}(\hat{x}-\hat{x}_k) \qquad \qquad (15) qk(x^)=RW1∣∣J11GVk(x^x^k,x2xk2)dx2=W1∣∣J11GV^k(x^x^k)(15)
其中足迹函数的 2×2 方差矩阵 V ^ k \hat{V}_k V^k 是通过跳过 V k V_k Vk 的最后一行和一列得到的,最后选择一个高斯低通滤波器 h = G V h ( x ^ ) h=\mathcal{G}_{V^h}(\hat{x}) h=GVh(x^),方差矩阵 V h ∈ R 2 × 2 V^h \in R^{2×2} VhR2×2 通常是单位矩阵。

计算卷积可得:
ρ k ( x ^ ) = ( q k ⊗ h ) ( x ^ ) = 1 ∣ W − 1 ∣ ∣ J − 1 ∣ ( G V ^ k ⊗ G V h ) ( x ^ − x ^ k ) = 1 ∣ W − 1 ∣ ∣ J − 1 ∣ ( G V ^ k + V h ) ( x ^ − x ^ k ) ( 16 ) \rho_k(\hat{x})=(q_k \otimes h)(\hat{x})=\frac{1}{|W^{-1}||J^{-1}|}(\mathcal{G}_{\hat{V}_k} \otimes \mathcal{G}_{V^h})(\hat{x}-\hat{x}_k)=\frac{1}{|W^{-1}||J^{-1}|}(\mathcal{G}_{\hat{V}_k+V^h})(\hat{x}-\hat{x}_k) \qquad \qquad (16) ρk(x^)=(qkh)(x^)=W1∣∣J11(GV^kGVh)(x^x^k)=W1∣∣J11(GV^k+Vh)(x^x^k)(16)
在这里插入图片描述
可以通过在一个方向上对球形高斯进行缩放 1 s \frac{1}{s} s1 来构建物体空间中的扁平化高斯重建核,其方差矩阵为:
V ′ ′ = ( 1 0 0 0 1 0 0 0 1 s 2 ) V^{''}=\begin{pmatrix}1&0&0\\0&1&0\\0&0&\frac{1}{s^2}\end{pmatrix} V′′= 10001000s21
为了渲染这个重建核,首先应用了一个 3D 变换矩阵 W,包含任意建模变换和视图变换,使用式(12)的局部仿射近似来将核映射到射线空间,方差矩阵按上述计算,引入矩阵 T 3 d T^{3d} T3d 表示连接的 3D 映射矩阵 T 3 d = J W T^{3d}=JW T3d=JW,可得 V:
V = J W V k ′ ′ W T J T = T 3 d V ′ ′ T 3 d T V=JWV_k^{''}W^TJ^T=T^{3d}V^{''}T^{3d^T} V=JWVk′′WTJT=T3dV′′T3dT

总结

根据渲染的物理定义,会受到体素的吸收、发射和散射作用,我们有了足迹函数;又因为实际采样中图像是通过离散的像素网格采样,会引发混叠,由此引入低通滤波器。而 EWA 则是将高斯椭圆核作为研究对象,利用方差矩阵对渲染过程进行了优化。


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

相关文章:

  • CityEngine:3D城市建模专家
  • C++进阶——封装红黑树实现map和set
  • Selenium Web UI自动化测试:从入门到实战
  • C#与西门子PLC的六大通信库
  • 使用LangChain开发智能问答系统
  • 最优编码树的双子性
  • TopK问题
  • 常考计算机操作系统面试习题(二)(上)
  • AI生成移动端贪吃蛇游戏页面,手机浏览器打开即可玩
  • Linux进程控制(四)之进程程序替换
  • 新能源汽车高压液体加热器总成技术解析及未来发展趋势
  • HashMap学习总结——JDK17
  • 介绍一个测试boostrap表格插件的好网站!
  • LVGL学习1
  • 【云上CPU玩转AIGC】——腾讯云高性能应用服务HAI已支持DeepSeek-R1模型预装环境和CPU算力
  • 基于linux平台的C语言入门教程(4)输入输出
  • SQL中的索引是什么
  • 建筑安全员考试:“实战演练” 关键词助力的答题提升策略
  • ARM架构薄记2——ARM学习架构抓手(以ARMv7为例子)
  • Linux小知识