AI Briefing

Three.js r186, 3D Gaussian Splatting 네이티브 지원 및 WebGPU 렌더링 도입

·2026.09.07 09:00

핵심 내용

Three.js r186에서 3D Gaussian Splatting이 엔진의 1급 기능으로 내장되어 WebGPU 기반의 사실적 3D 렌더링이 가능해졌다.

자세히 보기

Three.js r186 릴리스를 통해 3D Gaussian Splatting이 커뮤니티 애드온이 아닌 엔진의 first-class 기능으로 공식 지원된다. 이는 수천에서 수백만 개의 fuzzy, oriented, colored 3D ellipsoid(point cloud)를 back-to-front로 정렬하여 렌더링하는 기술로, meshing이나 UV unwrapping 없이도 photorealistic한 이미지를 생성한다.

핵심 기술 및 요구사항

  • WebGPU 필수: GaussianSplat 클래스는 WebGPURenderer를 사용해야 하며, TSL nodes와 컴퓨트 셰이더를 기반으로 매 프레임 정렬을 수행한다. 따라서 three/webgpu 및 관련 모듈이 import map에 올바르게 설정되어야 한다.
  • Scene Graph 통합: GaussianSplat은 THREE.Mesh를 상속하므로 transform, visibility 등 기존 3D 객체와 동일한 방식으로 관리된다.
  • 활용 분야: foliage, fur, 반투명 표면, 복잡한 실내 장면 등 수동 모델링이 어려운 실사 객체 캡처에 적합하다.
  • 한계점: 단일 캡처된 객체나 제한된 범위의 장면에 최적화되어 있으며, 대규모 도시 전체 같은 거대한 스케일에는 적합하지 않다.

지원 포맷 및 로더

다양한 소스 호환성을 위해 5가지 주요 로더가 제공되며, 모두 동일한 내부 구조로 변환된다.

  • SPZLoader (.spz): Niantic의 SPZ 포맷으로, 압축률이 높고 로딩 속도가 빨라 권장된다. v1-v3(gzip)도 지원한다.
  • GaussianSplatPLYLoader (.ply): 연구 코드 및 대부분의 툴에서 출력하는 표준 포맷으로 상호 운용성이 높으나 파일 크기가 크다.
  • SPLATLoader (.splat): antimatter15/splat의 원본 포맷으로 호환성 유지용이다.
  • KSPLATLoader (.ksplat): GaussianSplats3D 뷰어용 포맷이다.
  • GLTFGaussianSplatLoaderExtension: glTF 확장(KHR_gaussian_splatting)을 지원하여 다른 3D 자산과 함께 전달될 수 있다.

워크플로우

실제 세계의 객체를 Three.js 씬에 넣기까지는 Capture(Polycam, Scaniverse, Luma AI 등 앱 사용), Clean up(필요시 편집), Convert(적합한 포맷으로 변환), Render(Three.js에서 로드)의 4단계로 구성된다. 특히 Scaniverse는 .spz 포맷으로 직접 내보내기 가능하여 효율적이다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.