glTF 바이너리 (.glb)
ISO/IEC 표준Binary glTF (GLB)는 웹 기반 3D 그래픽스, 증강현실(AR), 실시간 게임 엔진 분야에서 '3D의 JPEG'로 널리 불리는 glTF 2.0 표준의 자체 완결형 단일 파일 바이너리 패키징입니다.
GLTF을(를) GLB(으)로 변환
무료 브라우저 내 GLTF-GLB 변환기. 기기에서 파일을 즉시 변환하세요.
검사 및 메타데이터
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 GLB 파일을 식별합니다:
바이트 단위 헤더 시그니처 (매직 바이트)
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 GLB 파일을 식별합니다:
16진수 시그니처 (오프셋 0):
67 6C 54 46ASCII 표현: glTF
표준화: ISO/IEC 12113:2022 / Khronos Open Standard
기술 사양
| 컨테이너 아키텍처 | 12-byte binary header ('glTF', version, length) followed by JSON chunk (CHUNK 0) and binary buffer chunk (CHUNK 1) |
| 압축 | DRACO mesh geometry compression, KHR_texture_basisu (KTX2/Basis Universal GPU textures), and ExtMeshopt |
| 바이트 엔디안 | Little-Endian (Intel x86 / WebGL standard) |
| 색 공간 | sRGB textures, Linear PBR roughness/metallic channels |
| 채널 및 구조 | PBR materials (Metallic-Roughness), skinned skeletal meshes, morph targets, animations, cameras, and lights |
| 최대 크기 | Unbounded vertex and triangle count (supports multi-gigabyte models) |
| 투명도 | Alpha coverage (MASK), alpha blending (BLEND), and volumetric transmission |
| 스트리밍 및 프로그레시브 | Single self-contained file with binary offset tables for direct GPU VBO loading |
기술 비교 매트릭스: GLB 대 경쟁사
| 기술적 속성 | GLB (현재) | GLTF | USDZ | FBX |
|---|---|---|---|---|
| 패키징 모델 | 단일 자체 완결형 바이너리 파일 | JSON + 외부 .bin 및 텍스처 파일 | USD 스키마 및 텍스처의 ZIP 아카이브 | 독자적인 Autodesk 바이너리/ASCII |
| 웹 및 AR 표준 | 범용 WebGL 및 안드로이드 AR 표준 | 범용 WebGL 표준 (멀티 파일) | 애플 iOS Quick Look AR 표준 | 데스크톱 게임 엔진 임포트 표준 |
| 머티리얼 모델 | 표준화된 glTF PBR Metallic-Roughness | 표준화된 glTF PBR | 범용 픽사 PBR 머티리얼 스키마 | 독자적인 Phong/Lambert/PBR 셰이더 |
| GPU 읽기 성능 | 즉시 처리 (직접 메모리 매핑) | 빠름 (다수의 네트워크 요청) | 빠름 (압축되지 않은 ZIP 엔트리) | 느림 (복잡한 파싱 필요) |
일반적인 손상 모드 및 헥스 복구 가이드
3D 모델이 텍스처가 누락되었거나 완전한 검은색 표면으로 렌더링됨.
근본 원인: 내장된 텍스처 청크 손상 또는 PBR metallic-roughness 텍스처 참조 누락.
복구: File2File 3D Converter 또는 glTF-Transform을 사용하여 청크 오프셋을 검사하고 복구하세요.
보안 분석 및 파서 공격 벡터
GLB 파서는 JSON 텍스트 청크를 임의의 바이너리 버퍼와 결합하여 처리하므로, 버퍼 길이가 일치하지 않을 경우 버퍼 오버플로우가 발생할 수 있습니다.
알려진 공격 벡터
- bufferView byteOffset + byteLength가 바이너리 청크 길이를 초과할 때 발생하는 버퍼 오버리드.
- WebGL drawElements 실행 중 발생하는 범위를 벗어난(out-of-bounds) 정점 인덱스 읽기.
- 병리적인 Draco 압축 해제 루프를 통한 서비스 거부(DoS) 공격.
방어적 모범 사례:
역사적 배경 및 주요 이력
주요 장점
- 완벽한 자체 완결성: 3D 지오메트리, PBR 머티리얼, 텍스처(PNG/JPEG/KTX2), 스켈레탈 애니메이션을 하나의 파일로 패키징합니다.
- 다이렉트 GPU 업로드: 바이너리 지오메트리 버퍼가 CPU 파싱 오버헤드 없이 WebGL / Vulkan 메모리 레이아웃과 일치합니다.
- WebGL, WebGPU, 이커머스 3D 제품 미리보기, 모바일 증강현실 분야의 명실상부한 표준입니다.
기술적 제한 사항 및 단점
- 바이너리 특성상 전문 3D 도구 없이는 수동 텍스트 검사나 편집이 어렵습니다.
- 고급 압축 확장 기능을 사용할 때 Draco 또는 Basis Universal 압축 라이브러리가 필요합니다.
- Apple 플랫폼은 네이티브 iOS Quick Look AR을 위해 USDZ를 선호하므로 GLB에서 포맷 변환이 필요합니다.
흥미로운 기술적 상식
- 모든 GLB 파일의 처음 4바이트는 0x67 0x6C 0x54 0x46이며, ASCII 'glTF'를 나타냅니다.
- 스마트폰 웹 브라우저에서 3D 운동화를 보고 있다면, 거의 확실히 인터랙티브 GLB 모델을 보고 있는 것입니다.
- GLB는 그래픽 하드웨어가 변환 과정 없이 디스크에서 VRAM으로 정점 버퍼를 직접 읽을 수 있도록 특별히 설계되었습니다.
자주 묻는 기술 질문
glTF와 GLB의 차이점은 무엇인가요?
glTF는 외부 .bin 지오메트리 및 별도의 이미지 텍스처 파일을 참조하는 JSON 파일입니다. GLB는 해당 전체 번들을 가져와 단일의 컴팩트한 바이너리 파일로 압축합니다.
Apple AR을 위해 GLB를 USDZ로 어떻게 변환할 수 있나요?
웹 브라우저에서 직접 File2File.app을 사용하여 한 번의 클릭으로 GLB 모델을 Apple용 USDZ 파일로 변환할 수 있습니다.
Blender에서 GLB 파일을 열 수 있나요?
네. Blender에는 소프트웨어에 직접 내장된 고성능 기본 glTF/GLB 가져오기 및 내보내기 기능이 포함되어 있습니다.