프로젝트 소개

이 저장소는 Kerbl, Kopanas, Leimkühler, Drettakis의 SIGGRAPH 2023 논문 "3D Gaussian Splatting for Real-Time Radiance Field Rendering"의 실시간 시각화 부분을 구현한 Unity 기반 3D 가우시안 스플래팅 뷰어입니다. 자체적으로 훈련을 수행하지 않고 이미 훈련된 가우시안 스플랫 모델 파일을 사용하며, 이후의 많은 가우시안 스플래팅 연구 변형이 아닌 원본 논문에 명시적으로 기반합니다. 상태 및 플랫폼 지원 저자는 2023년 12월 기준으로 더 이상의 주요 개발 계획이 없다고 밝혔습니다. 알려진 작동 플랫폼은 D3D12, Metal 또는 Vulkan 그래픽 API를 사용하는 플랫폼입니다: Windows(D3D12 또는 Vulkan), Mac(Metal), Linux(Vulkan). DX11은 작동하지 않습니다. OpenGL 및 OpenGL ES는 지원되지 않으며, WebGPU는 아직 실용적이지 않고, 모바일 지원은 일관되지 않아 일부 iOS 및 Android 기기에서 작동하지 않는 것으로 보고되었습니다. 일부 VR 기기(HTC Vive, Varjo Aero, Quest 3, Quest Pro)는 작동하는 것으로 보고되었지만, Apple Vision Pro와 같은 다른 기기는 작동하지 않을 수 있습니다. 사용 워크플로우 projects/GaussianExample 폴더를 Unity 프로젝트(Unity 2022.3으로 개발)로 열고 GSTestScene 씬을 로드합니다. GaussianSplat 에셋은 Tools -> Gaussian Splats -> Create GaussianSplatAsset 메뉴를 통해 생성됩니다. 입력은 원본 3DGS 논문의 PLY 파일(일반적으로 point_cloud/iteration_*/point_cloud.ply) 또는 Scaniverse SPZ 형식일 수 있습니다. 선택적 cameras.json은 같은 폴더나 상위 폴더에 배치할 수 있습니다. 대화 상자에는 압축 옵션과 출력 폴더가 있으며, "very low" 품질 사전 설정도 상당히 사용 가능한 것으로 설명되며, 한 캡처는 총 8MB 미만입니다. 결과 에셋은 여러 데이터 파일로 구성됩니다. 크기 때문에 저장소에는 스플랫 모델이 번들로 포함되어 있지 않습니다. 원본 논문 저장소는 사전 훈련된 모델의 14GB zip 파일에 대한 링크를 제공합니다. 렌더링 및 제어 게임 오브젝트의 GaussianSplatRenderer 스크립트는 Asset 필드에서 생성된 에셋을 사용합니다. 스크립트는 데이터 디버깅 및 시각화를 위한 컨트롤과 게임 카메라를 에셋의 카메라 위치 중 하나로 이동시키는 슬라이더를 제공합니다. 렌더링은 게임 오브젝트의 변환 행렬을 고려합니다. 공식 모델은 X축으로 약 -160도 회전하고 Z축으로 미러링된 것으로 나타나므로, 샘플 씬은 이러한 변환을 적용합니다. 추가 문서는 렌더 파이프라인 통합 및 스플랫 편집을 다룹니다. 성능 참고 사항 6.1M 스플랫, 1200x797, Medium 에셋 품질(282MB 에셋)의 논문 "bicycle" 씬의 경우, 저자는 Windows에서 NVIDIA RTX 3080 Ti로 보고합니다: 공식 SBIR 뷰어는 7.4ms(135FPS)로 4.8GB VRAM을 사용하고, Unity는 DX12 또는 Vulkan에서 6.8ms(147FPS)로 렌더링 4.5ms, 정렬 1.1ms, 스플랫 뷰 계산 0.8ms로 분할되며 1.3GB VRAM을 사용합니다. Mac의 Apple M1 Max에서는 Unity on Metal이 21.5ms(46FPS)로 보고됩니다. 로드된 에셋 외에도 스플랫당 약 48바이트의 GPU 메모리가 정렬 및 뷰 종속 데이터 캐싱에 현재 필요합니다. 라이선스 저자의 코드는 MIT 라이선스입니다. 타사 구성 요소에는 zanders3/json(MIT), Thomas Smith가 기여한 GPU 정렬 코드 "DeviceRadixSort", @ninjamode가 Unity-VR-Gaussian-Splatting을 기반으로 기여한 VR 수정 사항이 포함됩니다. README는 원본 논문 구현의 라이선스가 훈련 소프트웨어를 교육, 학술 및 비상업적 용도로 제한하며, 상업적 사용은 INRIA의 라이선스가 필요하다고 경고합니다. 사용자는 PLY 파일이 어떻게 생성되었는지 별도로 고려해야 합니다.