glTF → GLB 변환기
.gltf (+ .bin + 텍스처) 파일을 놓으면 브라우저에서 바로 .glb 형식으로 변환합니다. 파일은 컴퓨터 밖으로 나가지 않습니다.
glTF → GLB 변환이 필요한 이유
.gltf 파일은 본래 여러 부분으로 이루어집니다 — JSON 헤더에 외부 .bin 버퍼와 텍스처 파일이 따라붙습니다. 에셋 하나만 빠져도 전체를 불러오지 못합니다. GLB는 모든 것을 바이너리 하나로 합치므로 이메일 전송, CDN 업로드, Git 저장소에 넣기에 알맞은 포맷입니다.
누가 이 변환을 하나요
배포용 에셋을 패키징하는 웹 개발자, 다운로드 파일을 준비하는 Sketchfab / Khronos glTF-Sample-Assets 게시자, 그리고 여러 파일로 된 glTF 업로드가 깨져 낭패를 본 적 있는 모든 사람.
자주 생기는 문제
- 변환 시점에 외부 버퍼와 텍스처에 접근할 수 있어야 합니다 — 드롭하기 전에 같은 폴더에 모으거나 먼저 zip으로 묶으십시오.
- Draco로 압축된 glTF는 출력 GLB에서도 Draco 압축이 유지되므로 대상 엔진도 Draco를 지원해야 합니다.
- KHR 코어 외의 커스텀 glTF 확장은 있는 그대로 유지됩니다. 대상이 엄격하다면 Khronos glTF Validator로 검증하십시오.
이 도구의 기술 메모
Three.js GLTFLoader로 .gltf와 같은 위치의 에셋을 읽은 뒤, 바이너리 모드의 GLTFExporter가 버퍼와 텍스처를 포함해 씬을 .glb 하나로 다시 패키징합니다.
glTF vs GLB — 무엇이 다른가요?
GLB의 JSON 기반 쌍둥이입니다. 스펙은 같고, 사람이 읽을 수 있는 .gltf와 외부 .bin·텍스처 파일로 나뉘어 있을 뿐입니다.
- 텍스트 기반 씬 매니페스트 — 확인·diff·수정이 쉬움
- PBR 머티리얼, 스키닝, 애니메이션 모두 지원
- 실시간 3D 전달의 업계 표준
- 여러 파일로 출력 — 나머지 없이 한 파일만 복사하면 쉽게 깨짐
- 같은 에셋 기준 GLB보다 큼
바이너리 glTF — 3D계의 JPEG입니다. 파일 하나로 완결되고 작으며, 웹·AR·모든 최신 3D 엔진에서 기본으로 로드됩니다.
- 지오메트리, 텍스처, 머티리얼, 애니메이션을 전부 파일 하나에 담음
- 작고 빠름 — 스트리밍과 웹 전송을 위해 설계
- Blender, Unity, Unreal, three.js, <model-viewer>, Android ARCore 등에서 기본 지원
- PBR 머티리얼(metallic-roughness)이 어디서나 일관되게 렌더링됨
- 바이너리 — 직접 편집 불가
- 전통적인 CAD 파이프라인에서는 덜 쓰임
포맷 깊이 알아보기
glTF — 어디서 왔나
glTF 1.0은 2015년 "3D계의 JPEG"에 대한 Khronos의 답으로 출시됐습니다. 2017년 2.0 스펙에서 PBR 머티리얼 모델이 정리됐고, 지금 모든 최신 툴이 쓰는 버전이 이것입니다. .gltf / .bin / 텍스처로 나뉜 구성은 제작에 편한 형태이고, 최종 사용자에게는 GLB로 배포하세요.
- .bin 없이 .gltf만 옮기면 메시가 조용히 깨집니다. 항상 폴더째 압축하거나, 배포용으로는 GLB로 내보내세요.
- JSON 안의 상대 텍스처 경로는 폴더 구조를 바꾸면 깨집니다. 에셋이 확정되면 GLB를 쓰는 편이 낫습니다.
- 확장 작성자들이 추가한 기능(KHR_materials_transmission, KHR_draco_mesh_compression)을 모든 로더가 지원하지는 않습니다. 실제 대상 런타임에서 테스트하세요.
실제 사용: DCC 라운드트립(Blender → glTF → Maya → glTF), 빌드 시점에 3D 에셋을 변환·최적화하는 파이프라인, 그리고 사람이 읽을 수 있는 JSON 자체가 핵심인 에셋 출처 기록에 쓰입니다.
GLB — 어디서 왔나
glTF 2.0은 2017년 Khronos Group이 승인했고, 곧 W3C가 권장하는 웹 3D 포맷이 됐습니다. GLB는 지오메트리, 텍스처, 애니메이션, 씬 그래프를 .glb 하나에 모두 담는 "이것 하나면 충분한" 바이너리 패키징입니다. <model-viewer>, Android Scene Viewer, 모든 최신 게임 엔진이 거의 동시에 지원을 시작하면서 폭발적으로 채택됐습니다.
- PBR 머티리얼 모델은 선형(linear) 공간 텍스처를 전제합니다. 감마가 구워진 컬러 맵을 내보내는 DCC 툴의 결과물은 웹 뷰어에서 색이 바래 보입니다.
- Draco 메시 압축은 디코더를 미리 로드하지 않으면 오히려 로딩 시간을 늘립니다. 대역폭 절감이 실제로 필요한 경우가 아니면 끄세요.
- Y-up vs Z-up: glTF는 엄격하게 오른손 좌표계 Y-up입니다. Blender, 3ds Max, 대부분의 CAD 내보내기는 임포트 시 축을 뒤집어야 하며, 그러지 않으면 모델이 옆으로 누워 버립니다.
실제 사용: 이커머스 제품 페이지(IKEA, Amazon, Shopify 3D), Android AR Quick View, <model-viewer> 기반 문서, NFT 마켓플레이스, 실시간 컨피규레이터에 쓰입니다. 플러그인 없이 브라우저 탭에서 렌더링해야 하는 3D 에셋이라면 답은 GLB입니다.
glTF → GLB 변환 방법
- 1.gltf 파일을 드롭합니다. gltf가 외부 .bin이나 텍스처를 참조해 불러오기에 실패하면 폴더 전체(여러 파일 선택)로 불러와 보십시오.
- 2씬을 3D로 살펴봅니다. PBR 재질, 애니메이션, 스킨이 모두 렌더링되어야 합니다.
- 3GLB 다운로드를 클릭합니다. three.js, Unity, Unreal, AR에 바로 쓸 수 있는 독립된 파일 하나가 만들어집니다.
자주 묻는 질문
.gltf를 .glb로 묶는 이유는 무엇인가요?
.gltf는 깨지기 쉽습니다 — 외부 .bin과 텍스처 파일을 참조하므로 파일 하나만 빠져도 전체가 깨집니다. .glb는 이 모두를 바이너리 하나에 담아 이메일 전송, 임베드, CDN 업로드가 간단해집니다.
변환 과정에서 손실되는 것이 있나요?
없습니다 — GLB는 같은 glTF 사양을 바이너리로 패키징한 것일 뿐입니다. PBR 재질, 애니메이션, 확장 등 모든 것이 그대로 넘어갑니다.
GLB가 더 작아지나요?
보통 약간 작아지지만(base-64 오버헤드와 JSON 공백이 줄어듭니다), 핵심 이점은 크기보다 운영상의 단순함입니다.
변환 후 텍스처가 사라졌습니다
원본 .gltf가 브라우저에서 찾을 수 없는 경로로 텍스처를 참조하고 있을 가능성이 큽니다. 변환기는 드롭한 파일만 볼 수 있습니다. .gltf에 외부 텍스처가 있다면 .gltf에 미리 임베드하거나(대부분의 익스포터에 "embedded" 옵션이 있습니다) 폴더 드롭을 지원하는 메인 3D 뷰어를 사용하십시오.
업로드되는 것이 있나요?
없습니다. Three.js의 GLTFLoader와 GLTFExporter가 모든 처리를 클라이언트에서 합니다.