ReconWorldLab/godot-gaussian-splatting
GDScript0 / 0
Godot용 플러그인으로 3D Gaussian Splatting 자산을 임포트하여 컴포지터 기반 실시간 합성과 에디터에서의 충돌 메시 생성을 지원한다.
TL;DR
이 레포지토리는 Godot 엔진에 3D Gaussian Splatting 파이프라인을 통합하는 플러그인으로, 다양한 Gaussian 포맷을 GPU-준비 리소스로 변환하고 컴포지터 전용 패스에서 실시간 합성과 깊이 오클루전을 처리한다. 샘플은 수백만(리드미 기준 약 600만) 가우시안 포인트를 하나의 실시간 씬에서 렌더하는 예를 보여주며, 인스턴싱과 가시성 전파로 GPU 업로드 중복을 줄이는 최적화가 포함되어 있다. 3.1.0에서 추가된 에디터 측 충돌 생성은 opacity-weighted Mahalanobis 누적과 Beer–Lambert 컷오프에 기반한 복셀화, Greedy/Marching Cubes 추출, 백그라운드 작업 및 내보내기를 지원해 캡처 기반 씬을 물리와 연동할 수 있게 했다. 단점으로는 Forward Plus와 컴퓨트 셰이더를 전제로 하는 데스크톱 중심 지원과 4K에서의 GPU 메모리 압박 관련 시각적 오류 보고가 있어 대상 플랫폼 제약을 검토해야 한다.
핵심 포인트
- Godot의 컴포지터 패스 형태로 Gaussian Splatting을 직접 통합하여 표준 메시 파이프라인과 분리된 렌더 경로를 제공한다. 이 설계는 씬 깊이 버퍼에 대한 깊이-인식 합성 및 오클루전을 자연스럽게 구현하도록 한다. 결과적으로 기존 메시 기반 워크플로와 병행해 사용할 수 있는 하이브리드 렌더링을 실현한다.
- 에디터 측 충돌 생성 기능은 가우시안 데이터를 물리용 삼각형 메시로 변환하는 전체 파이프라인을 포함한다. 복셀화 시 opacity-weighted Mahalanobis 누적과 Beer–Lambert 컷오프를 적용하고 Greedy 또는 Marching Cubes 추출 옵션을 제공하므로 사용 목적에 따라 성능과 품질 트레이드오프를 선택할 수 있다. 생성은 백그라운드 스레드와 취소 가능한 진행 다이얼로그, 단일 undo/redo 액션으로 통합되어 실무 편의성을 높였다.
- GPU 복셀화 경로는 RenderingServer.create_local_rendering_device()를 사용해 개인 로컬 장치를 생성하고 렌더러의 전역 GPU 상태를 변경하지 않도록 설계되었다. 이 방식은 플러그인의 GPU 작업이 기존 렌더러 파이프라인과 충돌하지 않게 하는 안전 장치를 제공한다. 또한 GPU가 없을 경우 자동으로 CPU 경로로 폴백되므로 렌더링 전용 설치에서는 충돌 모듈을 제거해도 렌더 기능은 유지된다.
- 가우시안 자산을 임포트하고 GPU-준비 리소스로 변환하는 파이프라인을 제공한다. 이 변환 과정에서 포맷 통합과 중앙 정렬(center)을 수행하여 씬 배치를 간소화한다. 지원 포맷으로는 .ply, .compressed.ply, .splat, .sog(v2)가 포함되어 있어 다양한 스플랫 소스 파일을 수용한다.
248
STARS
21
FORKS
+204
TRENDING
0
조회수
관련 토론
아직 관련 토론이 없습니다.
댓글
댓글을 작성하려면 로그인이 필요합니다.