[논문리뷰] When Gaussian Meets Surfel: Ultra-fast High-fidelity Radiance Field Rendering
SIGGRAPH 2025. [Paper]
Keyang Ye, Tianjia Shao, Kun Zhou
Zhejiang University
24 Apr 2025

Introduction
본 논문에서는 radiance field 렌더링을 위한 bi-scale 표현 방식인 Gaussian-enhanced Surfel (GES)을 소개한다. Coarse scale에서는 시점에 따라 색상이 변하는 불투명한 2D surfel들이 장면 표면 radiance field의 근사치를 구성하며, 이를 surfel radiance field라고 한다. 각 surfel은 불투명도가 1인 2D 타원이다. Fine scale에서는 coarse scale의 surfel들을 둘러싸는 몇 개의 3D Gaussian들이 volumetric radiance field을 형성하여 surfel radiance field으로는 잘 표현되지 않는 장면의 외형을 보완한다.

본 논문의 핵심 관찰 결과는 surfel radiance field가 장면의 외형 대부분을 포착할 수 있으며, Gaussian radiance field는 세밀한 디테일을 효과적으로 더해준다는 점이다. Coarse scale과 fine scale 모두에서 얻은 radiance field 렌더링을 결합함으로써, GES radiance field는 SOTA와 견줄 만한 고품질 이미지를 합성할 수 있다.
GES radiance field 렌더링은 두 단계로 이루어지며, 정렬 과정이 전혀 없다. 먼저, 불투명한 surfel은 표준 그래픽스 파이프라인을 통해 rasterization되어 color map과 depth map을 생성한다. 둘째, 깊이 테스트를 통해 Gaussian을 화면에 splatting하고, surfel color map의 각 픽셀에 불투명도에 따라 가중치를 부여한 Gaussian 색상을 순서에 관계없이 누적한다. 각 픽셀에서, surfel depth map을 사용한 깊이 테스트를 통과하지 못한 Gaussian은 색상이 누적되지 않는다. 이는 Gaussian이 surfel로 표현된 geometry에 가려졌음을 의미한다. 이러한 정렬 없는 렌더링 방식은 Gaussian 정렬의 계산 병목 현상을 해결하여 매우 빠른 프레임 속도를 달성할 뿐만 아니라, 시점 전환 시 발생하는 popping 아티팩트 현상도 효과적으로 방지한다.
GES 표현은 먼저 surfel을 최적화한 다음 surfel과 Gaussian을 동시에 최적화하는 coarse-to-fine 과정을 통해 멀티뷰 입력 이미지로부터 효율적으로 구성될 수 있다. Surfel의 geometry 파라미터에서 픽셀 색상으로의 forward pass가 미분 불가능하기 때문에 이미지 색상 loss로부터 불투명한 surfel을 최적화하는 것은 어려운 문제이다. 즉, surfel의 geometry 변화가 색상 변화를 전혀 일으키지 않거나, 각 surfel 전체의 색상이 동일하기 때문에 갑작스러운 색상 변화만 발생시킨다.
이러한 문제를 해결하기 위해 최적화 과정에서 불투명도 조절 파라미터를 도입하여 반투명 surfel을 점진적으로 불투명하게 만든다. 파라미터가 1보다 작으면 surfel 전체가 Gaussian 분포를 따르는 반투명 영역으로 유지된다. 파라미터가 증가함에 따라 surfel은 중심에서 바깥쪽으로 갈수록 점차 불투명해지며, 최종적으로 surfel 전체 범위의 불투명도가 1이 된다.
GES 표현은 기존 3DGS의 최근 개선 사항을 통합하여 렌더링 시 안티앨리어싱 (Mip-GES), 렌더링 속도 향상 (Speedy-GES), 저장 용량 축소 (Compact-GES), 더 나은 장면 geometry 재구성(2D-GES)을 달성함으로써 쉽게 확장할 수 있다.
Method

1. Gaussian-enhanced Surfel
Gaussian-enhanced Surfel은 radiance field를 두 가지 scale로 표현하는 방식이다. 하나는 시점에 따라 색상이 변하는 불투명한 2D surfel로, 표면 radiance field을 근사하여 coarse scale의 geometry와 외형을 나타낸다. 다른 하나는 surfel을 둘러싼 몇 개의 3D Gaussian으로, volumetric radiance field을 형성하여 surfel radiance field에서 잘 표현되지 않는 fine scale의 외형 디테일을 보완한다.
2D surfel $\mathcal{S}$는 로컬 좌표계에서 XY 평면 상의 2D 디스크로 정의된다.
\[\begin{equation} \mathcal{S} = \{\textbf{p}_i, \textbf{r}_i, \textbf{s}_i, \textbf{SH}_i\}_{i=1}^N \end{equation}\](\(\textbf{p}_i \in \mathbb{R}^3\)는 surfel 중심 위치, \(\textbf{r}_i \in \mathbb{R}^4\)는 rotation quaternion, \(\textbf{s}_i \in \mathbb{R}^2\)는 scale, \(\textbf{SH}_i\)는 SH 계수)
이 2D surfel 공식은 2DGS의 2D Gaussian과 유사하지만, 본 논문의 surfel은 완전히 불투명하다는 점이 다르다. 전체 surfel의 색상은 surfel 중심에서 카메라 위치 방향으로의 SH 색상과 동일하다.
\[\begin{equation} \textbf{c}_i = Y (\| \textbf{o} - \textbf{p}_i \|, \textbf{SH}_i) \end{equation}\]($Y(\cdot)$는 SH 함수, \(\| \cdot \|\)는 norm, $\textbf{o}$는 카메라 위치)
3D Gaussian $\mathcal{G}$는 3DGS와 동일하게 정의된다.
\[\begin{equation} \mathcal{G} = \{\textbf{p}_i, \sigma_i, \textbf{r}_i, \textbf{s}_i, \textbf{SH}_i\}_{i=1}^M \end{equation}\](\(\sigma_i\)는 최대 불투명도)
GES를 사용한 렌더링은 두 단계로 구성된다. 첫 번째 단계에서는 표준 그래픽스 파이프라인을 통해 surfel을 rasterization한다. Surfel 조각들의 깊이를 계산하고, z-buffer를 사용하여 깊이 테스트를 수행한 후, 깊이 테스트를 통과한 조각의 색상을 기록한다. 렌더링 후 surfel color map $C_s$와 depth map $D_s$를 사용할 수 있다.
두 번째 단계에서는 Gaussian들을 화면에 splatting하고, 각 픽셀에 대한 Gaussian의 색상과 가중치를 누적한다. 누적 과정에서 surfel depth map $D_s$를 사용하여 Gaussian에 대한 깊이 테스트를 수행하고, 표면에 가려져 중심 깊이가 깊이 테스트를 통과하지 못한 Gaussian은 무시한다. 픽셀 \(\hat{\textbf{x}}\)에 대해, 누적된 Gaussian 색상과 가중치는 다음과 같다.
\[\begin{equation} \textbf{C}_G (\hat{\textbf{x}}) = \sum_{i=1}^K [\unicode{x1D7D9} (d_i < d_s (\hat{\textbf{x}}) + \epsilon_i)] \textbf{c}_i \alpha_i (\hat{\textbf{x}}) \\ W_G (\hat{\textbf{x}}) = \sum_{i=1}^K [\unicode{x1D7D9} (d_i < d_s (\hat{\textbf{x}}) + \epsilon_i)] \alpha_i (\hat{\textbf{x}}) \\ \alpha_i (\hat{\textbf{x}}) = \sigma_i \exp (- \frac{(\hat{\textbf{x}} - \hat{\textbf{p}}_i)^\top \Sigma^{-1} (\hat{\textbf{x}} - \hat{\textbf{p}}_i)}{2} ), \quad \epsilon_i = \frac{5}{3} \sum_{j=1}^3 s_{i,j} \end{equation}\]($\unicode{x1D7D9}(\cdot)$은 indicator function, $d_i$는 Gaussian 중심 깊이, $d_s$는 depth map $D_s$에서 얻은 픽셀 깊이, \(\hat{\textbf{p}}_i\)는 projection된 Gaussian 중심, \(\textbf{c}_i\)는 현재 뷰에서의 Gaussian 색상, $s_{i,j}$는 \(\textbf{s}_i\)의 $j$번째 축의 길이)
$\epsilon_i$는 표면 근처의 3D Gaussian이 잘못 잘리는 것을 방지하기 위해 도입된 작은 양수 값이다. 3DGS에서와 같이, \(\alpha_i < 1/255\)일 때 \(\alpha_i\)는 0으로 고정된다.
최종 이미지 $C$는 surfel color map과 Gaussian color map의 가중 합으로 계산된다.
\[\begin{equation} C = \frac{C_s + C_g}{1 + W_G} \end{equation}\]3D Gaussian의 색상은 가중치에 따라 누적되고 정규화되므로 GES의 전체 렌더링 과정은 정렬이 전혀 필요하지 않다. 결과적으로 GES는 Gaussian 정렬의 계산 병목 현상을 우회하여 매우 높은 FPS를 달성할 뿐만 아니라 시점 전환 시 popping 아티팩트를 효과적으로 방지하여 시점 일관성을 유지한다.
2. Coarse-to-Fine Optimization
최적화는 coarse-to-fine 방식을 사용한다. Coarse stage에서는 불투명한 surfel을 최적화하여 coarse한 geometry와 외형을 재구성한다. Fine stage에서는 surfel의 geometry 속성 \(\textbf{p}_i\), \(\textbf{r}_i\), \(\textbf{s}_i\)를 고정하고, 3D Gaussian을 추가하여 surfel의 SH 계수와 함께 공동으로 최적화함으로써 풍부한 외형 디테일을 재구성한다.
Surfel Optimization
Surfel은 sparse한 SfM 포인트로 초기화되며, surfel의 위치와 색상은 SfM 포인트의 위치와 색상으로 설정되고, surfel의 scale은 가장 가까운 이웃까지의 거리로 설정되며, rotation은 랜덤하게 생성된다. 이미지 색상 loss로부터 불투명한 surfel을 직접 최적화하는 것은 매우 어렵다. Surfel의 geometry 파라미터에서 픽셀 색상으로의 forward pass가 미분 불가능하기 때문이다. 즉, surfel의 기하학적 변화는 색상 변화를 전혀 일으키지 않거나 급격한 색상 변화를 일으킨다. Surfel 전체에서 색상이 동일하기 때문이다.
이 문제를 해결하기 위해 최적화 과정에서 반투명한 surfel이 불투명한 surfel로 점진적으로 진화하도록 불투명도 조절 파라미터 $w_i$를 도입한다. Surfel 로컬 좌표계의 점 $(x, y)$의 불투명도는 다음과 같이 정의된다.
\[\begin{aligned} \alpha_i (x, y) &= \min (1, w_i G(x, y)) \\ G(x, y) &= \exp (- \frac{x^2 + y^2}{2}) \end{aligned}\]\(\alpha_i (x, y)\)는 \(\min (\alpha_i (x, y), G (x, y)) < 1/255\)일 때 0으로 고정된다. 반투명 surfel의 rasterization은 2DGS와 동일하다. $w_i = 255$일 때, $G (x, y) > 1/255$ 범위 내에서는 불투명도가 1이고, 이 범위를 벗어나면 불투명도가 0이 된다. 그 결과, 불투명도가 균일하게 1인 반지름 $r = \sqrt{2 \log (255)} \approx 3.3$인 원형 디스크가 생성된다.

최적화 과정에서 surfel의 바깥쪽 링은 Gaussian 분포를 따르는 반투명 불투명도를 가지며, 이를 통해 gradient가 surfel의 geometry 파라미터로 backpropagation될 수 있다. 최적화는 $w_i = 0.1$에서 시작하는데, 이는 각 surfel이 2D Gaussian이라는 것을 의미한다. 초기 iteration에서는 넓은 반투명 영역이 surfel의 위치와 모양을 최적화하는 데 효과적인 gradient를 제공한다. 후반 iteration에서는 $w_i$ 값을 점진적으로 증가시키고, 이에 따라 반투명 영역이 축소되며, surfel의 geometry는 최종적으로 안정화되어 반투명 surfel이 완전히 불투명해진다. 반투명 영역에서 더 많은 gradient를 얻고 안티앨리어싱을 구현하기 위해 모든 surfel의 $w_i$ 값이 30을 초과하면 4배 슈퍼샘플링을 적용한다.
최적화 과정에서 반투명 surfel을 렌더링하기 위해 알파 블렌딩을 사용하는데, 이를 위해서는 surfel의 깊이 정렬이 필요하다. 하지만 각 픽셀에 대해 정확한 깊이 정렬을 수행하는 것은 비용이 너무 많이 들고, 3DGS처럼 surfel 중심 깊이를 이용한 타일 기반 정렬은 정확도가 떨어져 최종 불투명 surfel들이 서로 겹쳐 재구성 품질이 저하된다.
저자들은 $w_i$가 클 때, 즉 surfel이 대부분 불투명할 때, 픽셀을 덮는 가장 앞쪽 surfel이 픽셀 색상에 가장 큰 영향을 미친다는 점을 관찰하여, 알파 블렌딩을 보다 효율적으로 근사하는 방법을 설계했다. 구체적으로, $w_i < 30$일 때, 3DGS와 동일한 방식으로 surfel에 대한 타일 기반 정렬을 수행한다. $w_i$ 값이 30을 초과하면, 타일 기반 정렬 후 각 픽셀에 대해 해당 픽셀을 덮고 있는 surfel들의 정확한 픽셀 레벨 깊이를 계산한다. 가장 깊이가 작은 surfel이 첫 번째 블렌딩 계산에 선택되고, 나머지 surfel들의 블렌딩 순서는 조정되지 않는다. 이 전략은 정확한 정렬을 효과적으로 근사화하면서 시간과 메모리 오버헤드를 모두 줄여준다. 또한, 최적화 후 렌더링 결과가 z-buffer 기반 surfel 렌더링 결과와 일치한다.
Loss는 다음과 같이 이미지 loss \(\mathcal{L}_1\)과 D-SSIM loss를 포함한다.
\[\begin{equation} \mathcal{L}_\textrm{rgb} = (1 - \lambda) \mathcal{L}_1 + \lambda \mathcal{L}_\textrm{D-SSIM} \end{equation}\]($\lambda = 0.2$)
처음 10,000 iteration에서는 Mip-Splatting에 사용된 것과 동일한 전략을 surfel densification과 pruning에 사용한다. 10,000번째 iteration에서 $w_i < 0.8$인 surfel들을 제거하고 (단, 이후 3D Gaussian 초기화를 위해 해당 surfel들의 위치는 기록), $w_i \ge 0.8$인 surfel들의 $w_i$ 값을 30 이상으로 증가시키고, $w_i$ 값은 최적화에서 제외하며, densification과 pruning을 비활성화한다. 18,000 iteration과 19,000 iteration에서는 각 surfel의 $w_i$ 값을 각각 60 이상과 90 이상으로 증가시킨다. 20,000 iteration에서는 모든 surfel의 $w_i$ 값을 255로 설정하고 surfel geometry 최적화를 종료한다.
Surfel 렌더링에서 필요한 것은 대략적인 color map과 depth map 뿐이므로, $\mathcal{S}$는 과도한 외형 디테일을 제공할 필요가 없다. 15,000 iteration 후에는 densification을 비활성화하고 새로운 전략을 사용하여 surfel을 추가로 pruning한다. 구체적으로, $j$번째 학습 뷰의 각 surfel \(\mathcal{S}_i\)에 대해, \(\mathcal{S}_i\)가 가장 앞에 있는 surfel일 때 덮고 있는 픽셀 수 $n_{i,j}$를 계산한다. \(\mathcal{S}_i\)의 점수는 \(n_i = \max \{n_{i,j}\}_{j=1}^T\)로 정의된다. 그런 다음, threshold \(n_\textrm{thr}\)보다 $n_i$가 작은 모든 surfel을 pruning하여 작거나 보이지 않는 surfel을 제거한다. 실제 장면의 경우 \(n_\textrm{thr} = 16\)으로, 합성 장면의 경우 \(n_\textrm{thr} = 4\)로 설정된다.
Gaussian-Surfel Joint Optimization
Surfel 최적화 후, 3D Gaussian을 추가하고 surfel의 SH 계수와 함께 공동으로 최적화한다. 이 단계에서도 loss function은 여전히 \(\mathcal{L}_\textrm{rgb}\)이다. Gaussian은 surfel 최적화 과정에서 10,000 iteration에서 $w_i < 0.8$인 surfel의 위치를 사용하여 초기화한다. 다른 Gaussian 속성은 3DGS와 동일한 방식으로 초기화한다.
공동 최적화 과정에서 3D Gaussian을 주기적으로 densification하고 pruning한다. 1,000 iteration마다 모든 학습 뷰에 걸쳐 실제 이미지와 렌더링된 이미지 간의 squared error map을 계산한다. Error map에서 각 픽셀의 오차를 정규화하고, 정규화된 오차를 해당 픽셀의 샘플링 확률로 간주한다. 그런 다음, 각 이미지의 확률에 따라 고정된 개수의 픽셀을 샘플링한다. 해당 surfel depth map과 카메라 파라미터를 사용하여 포인트 클라우드를 얻고, 이 포인트 클라우드는 새로 추가된 3D Gaussian의 초기 위치로 사용된다. 다른 Gaussian 속성도 3DGS와 동일한 방식으로 초기화된다.
Gaussian pruning의 경우, RadSplat과 유사하게 $j$번째 학습 뷰에서 각 3D Gaussian \(\mathcal{G}_i\)에 대한 기여도 점수를 계산한다.
\[\begin{equation} s_{i,j} = \max_{\hat{\textbf{x}}} \frac{c_{i,j} \alpha_{i,j} (\hat{\textbf{x}})}{1 + W_G}, \quad \textrm{where} \; c_{i,j} = \max \{c_{i,j}^k\}_{k=1}^3 \end{equation}\]($\hat{\textbf{x}}$는 Gaussian이 덮는 픽셀, $c_{i,j}^k$ Gaussian 색상 \(\textbf{c}_{i,j}\)의 $k$번째 채널)
모든 $T$개의 학습 뷰 중에서 \(\max \{s_{i,j}\}_{j=1}^T < 0.02\)인 3D Gaussian은 pruning된다.
3. Extensions
GES 표현 방식은 기존 3DGS 방식의 최근 개선 사항을 통합하여 기능을 더욱 향상시키도록 쉽게 확장할 수 있다.
- Mip-Splatting + GES = Mip-GES
- Speedy-Splat + GES = Speedy-GES
- Compact-3DGS + GES = Compact-GES
- 2DGS + GES = 2D-GES
2DGS의 geometry 관련 loss 계산을 위해, 다음과 같이 smoothed depth map \(D_\textrm{smooth}\)와 smoothed normal map \(N_\textrm{smooth}\)를 계산할 수 있다.
\[\begin{equation} D_G (\hat{\textbf{x}}) = \sum_{i=1}^N [\unicode{x1D7D9} (d_i < d_s (\hat{\textbf{x}}) + \epsilon_i)] d_i \alpha_i (\hat{\textbf{x}}) \\ N_G (\hat{\textbf{x}}) = \sum_{i=1}^N [\unicode{x1D7D9} (d_i < d_s (\hat{\textbf{x}}) + \epsilon_i)] \textbf{n}_i \alpha_i (\hat{\textbf{x}}) \\ D_\textrm{smooth} = \frac{D_s + D_G}{1 + W_G}, \quad N_\textrm{smooth} = \frac{N_s + N_G}{1 + N_G} \end{equation}\]Experiments
1. Comparisons With Baselines
다음은 이미지 품질을 비교한 결과이다.


다음은 Speedy-Splat과 Speedy-GES를 비교한 예시이다.

다음은 AbsGS와 3D-GES를 비교한 예시이다.

다음은 SortFreeGS와 3D-GES를 비교한 예시이다.

다음은 Mip-GES와 3D-GES를 비교한 예시이다.

다음은 popping 아티팩트에 대한 비교 결과이다.


2. Ablation Study
다음은 FPS, 저장 용량 (MB), 학습 시간 (분)을 비교한 결과이다.

다음은 2DGS와 2D-GES의 normal map을 비교한 예시이다.

다음은 3DGS, 2DGS, 3D-GES, 2D-GES의 geometry를 비교한 결과이다.


다음은 ablation study 결과이다.

다음은 two-stage 전략과 single-stage 전략을 비교한 예시이다.

다음은 surfel만 혹은 3D Gaussian만 사용하였을 때의 렌더링 결과를 비교한 예시이다.

다음은 surfel 최적화 중에 정렬 순서 재조정 여부에 따른 결과를 비교한 예시이다.

다음은 $\epsilon$에 따른 렌더링 결과를 비교한 예시이다.
