3D Gaussian Ray Tracing

Theme
논문
Type
테마글
Status
Writing
분야
Neural Rendering
중요도
2 more properties

Motivation

기존 rasterization 기반 3D Gaussian Splatting(이하 3DGS) 성능을 올리고자 하는 게 목표가 아님
다만, rasterization 방식으로 인해서 가지고 있는 application의 부재를 해결하고자, differentialble ray tracing 기반의 3D Gaussian 렌더링 방식을 제안
Ray tracing을 사용할 시 아래와 같은 다양한 효과가 고려 가능
Reflection
Refraction
Shadows
기존 ray tracing처럼 optimize를 하면 속도가 많이 느려, 3D gaussian을 위한 다양한 algorithm 변화

Challenges

3DGS 기반 work들은 다양한 효과들을 고려하기 위한 학습 방법을 제시하지만, 우리는 이보다 더욱 principled한 방식을 렌더링 과정에 도입해서 특별한 학습 방식을 필요로 하지 않도록 한다.
3D Gaussian들은 semi-transparent particles으로 본다면, 본 work은 volumetric ray tracing과 연관이 깊다. 그런데 volumetric ray tracing을 differentiable하게 만드는 연구는 크게 없었던 것으로 보인다.

Background

3D-GS

3DGS는 아래와 같은 3D Gaussian kernel의 differentiable semi-transparent particle을 optimize한다
자세한 방식은 추후에 3DGS 논문을 요약하면서…

Hardware-Accelerated Ray Tracing

하드웨어 기반 ray tracing은 OptiX라는 program interface를 통해서 가능하다.
OptiX는 무엇이 특별하길래?
Ray-primitive intersection test를 RT core기반으로 빠르게 해준다!
자세한건 내가 또 추후에 요약..
다만 아직 semi-transparent particle을 ray tracing하는 방식을 효율적으로 구축하기는 어려움
모든 particle에서 trace를 하는 알고리즘과 이의 변형이 기반인데, 기존보다 너무 많은 computing을 요구함
본 연구는 보다 효율적인, 3D Gaussian (혹은 다른 kernel기반) particle의 ray tracing 알고리즘들을 소개함

Method

Bounding Primitives

OptiX는 BVH (Bounding Volume Hierarchy)를 통한 ray-primitive intersection test에 매우 특화된 interface임.
이를 통해서 ray와 gaussian들과의 intersection을 효과적으로 계산할 수 있음!
기존 rasterization은 intersection은 고려 안하고 그냥 다 screen-space 로 투영, 각 gaussian의 spherical harmonics와 density 기반으로 최종 픽셀 색을 accumulate
ray tracing을 통해서 관련 없는 gaussian은 고려하지 않을 수 있음
Gaussian, 혹은 다양한 kernel의 bounding box는 어떻게 구하나?
정이십면체 (icosahedron)으로 bounding 후, stretch하고 크기를 clamping하여 결정
Clamping 기준은 kernel function의 response σ\sigma를 기준으로 함
하지만 kernel function은 매 optimization마다 달라지기에 매번 새로운 BVH를 구축해야 함

Ray tracing

OptiX가 가지고 있는 any-hit program을 통해서 ray와 intersect하는 BVH의 particle들을 찾아냄
전체 transmittance가 threshold를 넘을 때까지 trace
첫 K 개의 particle마다 trace
원래 ray tracing은 closest-hit을 사용해서 닿는 mesh 를 찾고, surface material에 맞게 BSDF sampling을 해서 다음 tracing을 진행