Spark - Three.js용 고급 3D Gaussian Splatting 렌더러
(sparkjs.dev)- Spark는 Three.js 장면에서 3D Gaussian Splatting을 렌더링하도록 만든 고급 렌더러임
- World Labs가 제작했으며, 기존 장면 안에서 다른 메시와 splat을 함께 배치할 수 있음
- 모든 기기에서 빠른 렌더링을 목표로 하며, 다양한 환경에서 splat 콘텐츠를 다루는 데 초점을 둠
- 프로그래밍 가능한 동적 splat 효과를 지원해 정적인 표시를 넘어 장면 내 효과를 구성할 수 있음
- ply, sogs, spz, splat, ksplat 등 여러 형식을 지원하며, 공식 문서에서 바로 시작할 수 있음
Three.js 장면에 통합되는 splat 렌더러
- Spark는 Three.js용 3D Gaussian Splatting 렌더러임
- World Labs가 제작함
- 기존 Three.js 장면에 통합해 다른 메시 및 splat과 함께 사용할 수 있음
렌더링 기능과 지원 형식
- 모든 기기에서 빠른 렌더링을 제공한다고 안내됨
- 프로그래밍 가능한 동적 splat 효과를 지원함
- 지원 형식은 다음과 같음
- ply
- sogs
- spz
- splat
- ksplat
- 시작 문서는 Get started에서 제공됨
댓글과 토론
Hacker News 의견들
-
데모가 정말 인상적이고, 오래된 iPhone에서도 잘 돌아감
3D 프로그래밍 지식이 많지 않은 취미 게임 개발자 입장에서는 GitHub나 웹사이트 어딘가에 가우시안 스플래팅이 무엇인지 한 줄로라도 정의해주면 좋겠음
Wikipedia의 “가우시안 스플래팅은 데이터를 표면이나 선 기본 요소로 변환하지 않고 볼륨 데이터를 직접 렌더링하는 볼륨 렌더링 기법” 정도만 있어도 프로젝트와 활용 가능성이 훨씬 더 기대됨
고성능 구름, 불, 연기 같은 걸 만들 수 있다면 정말 멋짐- FAQ는 꼭 추가해야겠음
-
음식 스캔 데모, 특히 “Interactivity” 예시 섹션이 대단함
Mel's Steak Sandwich에서 빵 구멍 안쪽을 들여다보는 장면이 특히 좋았고, 보이는 디테일 수준에 비해 통합 그래픽 노트북에서도 성능이 놀라울 정도로 좋음
이 기법이 지금은 어디에서 가장 흔히 쓰이는지 궁금함- 손持 장치나 드론으로 짧은 물체들을 스캔하는 데 열정적인 커뮤니티가 있음
Tipatat이 데모용 음식 스캔을 넉넉히 제공해줬고, kotohibi의 꽃 스캔도 좋아함: https://superspl.at/user?id=kotohibi - 그 정도 디테일치고 전송 크기도 나쁘지 않음. 약 80MB밖에 안 됨
비꼬는 게 아니라 정말 깔끔함
- 손持 장치나 드론으로 짧은 물체들을 스캔하는 데 열정적인 커뮤니티가 있음
-
이것도 멋지고, BabylonJS도 가우시안 스플래팅 지원이 괜찮음: https://doc.babylonjs.com/features/featuresDeepDive/mesh/gau...
- BabylonJS와 원글의 Aframe [1]은 라이선스, GitHub 스타와 포크 수가 비슷해 보이지만, Aframe이 더 새롭고 게임/VR 쪽에 더 초점을 둔 듯함
Babylon, Aframe, Three.js, PlayCanvas [2]를 써본 입장에서 어떻게 비교되는지 궁금함
이해한 바로는 PlayCanvas가 가장 성숙하고 기능이 많고 성능도 좋지만 상용이고, Babylon은 기능이 풍부한 3D 엔진이며 Three.js는 꽤 날것에 가까움. 애니메이션, 텍스처 등 좋은 요소는 있지만 결국 자기 도구 세트를 직접 만드는 느낌임
이들 중 좋은 경험이나 나쁜 경험이 있는지 궁금함
데모는 정말 안정적임. Aframe의 핵심 매력은 무엇인지 궁금함
가우시안 스플래팅의 미래가 어떻게 펼쳐질지도 궁금함. 시각화나 산업용 “디지털 트윈” 이상의 용도가 생길지, 가까운 미래에 편집하거나 애니메이션화할 수 있을지, 창작과 게임 분야에서 언제쯤 유용해질지 궁금함
[1] https://github.com/aframevr/aframe
[2] https://playcanvas.com/
- BabylonJS와 원글의 Aframe [1]은 라이선스, GitHub 스타와 포크 수가 비슷해 보이지만, Aframe이 더 새롭고 게임/VR 쪽에 더 초점을 둔 듯함
-
저장소 링크가 조금 더 잘 보이게 여기 있음: https://github.com/sparkjsdev/spark
-
아주 멋짐
현재 성능 병목이 어디에 있는지, 특히 동적 장면 쪽에서 어떤 통찰이 있는지 궁금함
파티클 시뮬레이션 예시는 버벅이다가 카메라를 회전하면 크게 나아지는데, 정적 배경이 보기보다 훨씬 무거운 듯함
반대로 병목과 별개로, 절차적으로 만든 Sierpinski 피라미드는 훌륭함- 장면 안의 스플랫 개수와 분포가 성능에 영향을 줌
아마 카메라를 스플랫이 더 적은 방향으로 돌렸을 가능성이 큼
일관된 성능을 내려면 아직 할 일이 많고, 다음으로는 아마 LOD 시스템을 살펴볼 예정임
- 장면 안의 스플랫 개수와 분포가 성능에 영향을 줌
-
아직 가우시안 스플래팅이 데모 이상의 의미가 있는지에는 꽤 회의적임
파일이 너무 큼. 예를 들어 스테이크 샌드위치 하나가 12MB임
작년 SIGGRAPH에는 가우시안 스플래팅 기반 Matterport 복제물이 있었는데, 방 2개짜리 아파트를 보려면 1.5GB를 스트리밍해야 했음
데모 자체는 멋짐- 12MB 스테이크 샌드위치가 그중 가장 큰 편이라는 점도 봐야 함
나머지는 10MB 미만이고, 꽤 설득력 있는 것들 중 여러 개는 1~3MB 범위에 있음. 예를 들어 Iberico Sandwich는 1MB, Clams and Caviar는 1.8MB임
더 고급 압축 방식도 오고 있음. 예를 들면 SOGS가 있음. 이건 30MB임
https://vincentwoo.com/3d/sutro_tower/ - SOGS 압축은 잘 동작함
전체 구면 조화 계수를 포함한 100만 개의 가우시안을 약 14MB에 담을 수 있음
PlayCanvas 블로그에 좋은 글이 있음: https://blog.playcanvas.com/playcanvas-adopts-sogs-for-20x-3... - 큰 파일 크기는 대부분 구면 조화 계수를 저장하기 위한 것이고, 이건 해결 가능한 문제임
- 12MB 스테이크 샌드위치가 그중 가장 큰 편이라는 점도 봐야 함
-
작업은 멋지지만, Nvidia RTX A3000 GPU가 달린 노트북의 Firefox에서는 성능이 꽤 나쁨
여기에는 1도 화상을 일으킬 만큼 충분한 셰이더 코어가 있음- 특정 데모나 예시에서 그런가?
-
휴대폰을 들고 돌아다니면서 잔디, 덤불, 흙 같은 것들의 가우시안 스플랫을 캡처할 수 있을까
그리고 1미터 정사각형 땅 조각이나 덤불이 있는 1미터 정육면체 영역을 선택한 뒤, 잔디 블록을 반복해서 깔고 가끔 흙과 덤불을 섞어 “Minecraft처럼 보이는” 세계를 만들 수 있을까
수천 개의 블록을 렌더링하려면 꽤 강력한 하드웨어가 필요할 것 같음- 그런 프로토타입은 충분히 만들 수 있을 듯함
실제로 보면 정말 멋질 것 같음
- 그런 프로토타입은 충분히 만들 수 있을 듯함
-
정말 멋져 보임
웹브라우저에서 웹페이지를 열었을 때 VR에서도 동작할까? 그러면 더 굉장할 듯함- VR에서도 동작함. 곧 데모를 공개할 예정임