论文阅读笔记——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^,ξ)e−∫0ξ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 e−∫0ξ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)=k∑gkrk(x)(2)
- r k ( x ) r_k(x) rk(x) 是第 k 个粒子的重建核函数
再用泰勒展开的前两项近似指数函数,即
e
x
≈
1
−
x
e^x ≈ 1- x
ex≈1−x,忽略自遮挡,认为在核函数区域内的发射系数
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^)=k∑cλk(x^)gkqk(x^)j=0∏k−1(1−gjqj(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^)=∫R2k∑cλk(η)gkqk(η)j=0∏k−1(1−gjqj(η))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=0∏k−1(1−gjqj(η)≈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^)=k∑cλkokgk(qk⊗h)(x^)(7)
假设:
ρ
k
(
X
^
)
=
(
q
k
⊗
h
)
(
x
^
)
\rho_k(\hat{X})=(q_k\otimes h)(\hat{x})
ρk(X^)=(qk⊗h)(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(x−p)=2π∣V∣211e−21(x−p)TV−1(x−p)(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(x−p)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′′(t−tk) ,
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)=∣W−1∣1GVk′(u−uk)=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⋅(u−uk)Juk=∂u∂m(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)=∣W−1∣1GVk′(m−1(x)−uk)=∣W−1∣∣J−1∣1GVk(x−xk)(13)Vk=JVk′JT=JWVk′′WTJT(14)
V
k
V_k
Vk 是射线空间下的协方差矩阵。
传统方法处理椭圆形核(计算消耗大且存在精度损失):
- 计算投影范围
- 映射到圆形 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^)=∫R∣W−1∣∣J−1∣1GVk(x^−x^k,x2−xk2)dx2=∣W−1∣∣J−1∣1GV^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}
Vh∈R2×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^)=(qk⊗h)(x^)=∣W−1∣∣J−1∣1(GV^k⊗GVh)(x^−x^k)=∣W−1∣∣J−1∣1(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 则是将高斯椭圆核作为研究对象,利用方差矩阵对渲染过程进行了优化。