웹 기반 파이프라인에서의 GLB
GLB는 컴팩트한 바이너리 구조와 단일 파일 안에 지오메트리, 머티리얼, 텍스처를 모두 포함할 수 있다는 점 때문에 웹 3D 전송용 대표 포맷이 되었습니다. 하지만 50MB 이상의 대용량 GLB 파일은 브라우저 환경에서 처리 및 성능 측면에서 여러 도전을 가져옵니다.
브라우저 제약 사항
메모리 한계
브라우저는 일반적으로 하나의 프로세스에 대해 약 1.5~2GB 수준의 소프트 메모리 한계를 갖습니다. 대용량 GLB 파일은 다음 영역에 영향을 줍니다.
- 파싱과 버퍼 생성 과정에서의 CPU 메모리.
- 버텍스 버퍼와 텍스처가 업로드될 때의 GPU 메모리.
- 전체 탭 안정성(크래시나 자동 새로고침 발생 가능).
파싱 및 업로드 비용
GLB를 로딩하는 과정은 다음 단계들로 구성됩니다.
- 바이너리 파일 다운로드.
- GLTF/GLB 파싱과 JSON 해석.
- 버퍼와 텍스처 생성.
- GPU 업로드 및 머티리얼 컴파일.
예를 들어 75MB GLB의 경우, 대략적인 단계별 소요 시간은 다음과 같습니다.
| 단계 | 대략 시간 |
|---|---|
| 네트워크 다운로드 | ~1.2초 |
| 파싱 | ~0.8초 |
| GPU 업로드 | ~0.6초 |
| 합계 | ~2.6초 |
최적화 기법
- 지오메트리에 Draco 또는 Meshopt 압축 적용.
- 익스포트 이전에 텍스처 다운스케일 및 재압축.
- 대형 씬을 여러 개의 GLB 청크로 분할.
- 서브 씬의 스트리밍 또는 점진적 로딩.
- 정적 오브젝트와 동적 오브젝트를 서로 다른 파일로 분리.
웹 기반 에디터는 런타임에 도달하기 전에 텍스처 해상도와 메쉬 밀도를 제한하는 표준화된 GLB 파이프라인을 통해 안정적인 성능을 얻을 수 있습니다. 3DwebX와 같은 플랫폼은 GLB 중심의 저장·로딩 전략을 사용해 다양한 디바이스에서도 예측 가능한 퍼포먼스를 유지합니다.