glTF JSON (.gltf)
ISO/IEC 표준GL Transmission Format(glTF)은 WebGL, WebGPU, 게임 엔진 및 네이티브 앱에서 3D 장면과 모델을 효율적으로 전송하고 불러오기 위한 개방형 로열티 프리 JSON 표준입니다.
GLTF을(를) GLB(으)로 변환
무료 브라우저 내 GLTF에서 GLB로 변환하는 도구입니다. 기기에서 파일을 즉시 변환할 수 있습니다.
검사 및 메타데이터
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 glTF 파일을 식별합니다:
바이트 단위 헤더 시그니처 (매직 바이트)
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 glTF 파일을 식별합니다:
16진수 시그니처 (오프셋 0):
7B 0A 20 20 22 61 73 73 65 74 22ASCII 표현: {\n "asset"
표준화: ISO/IEC 12113:2022 / Khronos Open Standard
기술 사양
| 컨테이너 아키텍처 | 장면 그래프, 노드, 메시, 액세서, 재질 및 애니메이션을 설명하고 외부 버퍼를 참조하는 가독성 높은 JSON 문서 |
| 압축 | 외부 텍스처(PNG, JPEG, WebP) 및 선택적 Draco 지오메트리 압축 |
| 바이트 엔디안 | UTF-8 JSON 텍스트(.bin 버퍼는 리틀 엔디안) |
| 색 공간 | sRGB 기본 색상, 선형 러프니스/메탈릭 |
| 채널 및 구조 | 장면 계층 구조, 노드, 카메라, PBR 재질, 스키닝 골격 및 모프 타깃 |
| 최대 크기 | 좌표 공간 및 삼각형 개수 제한 없음 |
| 투명도 | 알파 모드 BLEND, 임계값을 지정하는 MASK 또는 체적 투과 |
| 스트리밍 및 프로그레시브 | glTF는 장면 설명과 바이너리 형상 및 텍스처 데이터를 분리하므로, 뷰어가 하나의 거대한 파일이 모두 준비될 때까지 기다리지 않고 필요한 구성 요소를 불러올 수 있습니다. |
기술 비교 매트릭스: glTF 대 경쟁사
| 기술적 속성 | glTF (현재) | GLB | OBJ | FBX |
|---|---|---|---|---|
| 파일 아키텍처 | JSON 장면 텍스트와 보조 .bin/텍스처 파일 | 자체 완결형 단일 바이너리 파일 | 일반 텍스트 정점과 면, 보조 .mtl 파일 | 독점 바이너리/ASCII 컨테이너 |
| PBR 재질 표준 | 표준 금속성-거칠기 PBR | 표준화된 금속성-거칠기 PBR | 레거시 퐁/람베르트 재질 | 사용자 정의 독점 재질 |
| 애니메이션 지원 | 골격 스키닝 및 모프 타깃 | 골격 스키닝 및 모프 타깃 | 없음(정적 지오메트리만 지원) | 복잡한 애니메이션 및 골격 |
| 런타임 성능 | WebGL 및 실시간 엔진에 최적화 | WebGL 및 실시간 엔진에 최적화 | 느림(파싱 및 재구성 필요) | 복잡한 데스크톱 SDK로 파싱해야 함 |
일반적인 손상 모드 및 헥스 복구 가이드
3D 엔진 오류: '버퍼를 로드하지 못했습니다: URI를 찾을 수 없습니다(Failed to load buffer: URI not found)'.
근본 원인: 동반 .bin 바이너리 파일 또는 텍스처 이미지가 .gltf 파일과 함께 업로드되지 않았습니다.
복구: 보조 파일을 모두 함께 묶거나 File2File.app을 사용해 단일 GLB 파일로 바로 변환하십시오.
보안 분석 및 파서 공격 벡터
glTF JSON 파일은 데이터 URI나 원격 URL 등 외부 URI를 참조할 수 있으며, 이를 통해 서버 측 요청 위조(SSRF) 또는 경로 순회 공격이 발생할 수 있습니다.
알려진 공격 벡터
- 상대 버퍼 URI를 통한 경로 순회(예: uri: ../../../etc/passwd)
- 서버 측 3D 썸네일 생성기가 원격 네트워크 버퍼를 가져올 때 발생하는 SSRF
- 잘못된 재귀 장면 노드 계층의 순환 참조로 인한 서비스 거부(DoS)
방어적 모범 사례: 원격 URL을 허용하지 않고 로드하기 전에 모든 로컬 버퍼 URI 경로를 정규화하십시오.
역사적 배경 및 주요 이력
주요 장점
- 사람이 읽을 수 있는 JSON 구조를 통해 프로그래밍 방식의 편집, 파이프라인 스크립팅, 시각적 검사가 가능합니다.
- 모듈식 설계: 가벼운 장면 메타데이터를 무거운 바이너리 지오메트리(.bin) 및 텍스처와 분리합니다.
- PBR 재질은 일관성을 높일 수 있지만 결과는 렌더러, 조명, 설정에 따라 달라집니다.
기술적 제한 사항 및 단점
- 다중 파일 복잡성: 모델을 공유하려면 .gltf, .bin, 이미지 텍스처를 함께 압축하거나 번들로 묶어야 합니다.
- 여러 HTTP 요청으로 인해 단일 파일 GLB보다 초기 네트워크 시작 속도가 약간 느립니다.
- 동반 텍스처 파일의 이름을 변경하거나 이동하면 상대 경로 종속성이 깨질 수 있습니다.
흥미로운 기술적 상식
- glTF는 저작보다는 런타임 전송 및 표시에 엄격하게 초점을 맞추기 때문에 '3D의 JPEG'라는 별칭으로 불립니다.
- Khronos Group은 웹 및 모바일 애플리케이션에서 3D 자산을 더 쉽게 전송할 수 있도록 glTF를 도입했습니다.
- 나사(NASA)는 로버, 위성, 우주 비행사의 3D 모델을 glTF 형식으로 대중이 무료로 다운로드할 수 있도록 제공합니다.
자주 묻는 기술 질문
glTF 파일에서 색상이나 모양이 누락되는 이유는 무엇입니까?
.gltf 파일에는 JSON 장면 정보만 들어 있습니다. 3D 형상을 위한 .bin 파일과 텍스처 색상을 위한 .png/.jpg 파일이 별도로 필요합니다. 보조 파일이 모두 같은 폴더에 있는지 확인하십시오.
glTF 파일을 단일 GLB 파일로 어떻게 변환할 수 있습니까?
.gltf 파일과 보조 .bin 및 텍스처 파일을 File2File.app에 업로드하면 하나의 자체 완결형 .glb 파일로 바로 병합할 수 있습니다.
어떤 프로그램에서 glTF를 지원합니까?
Blender, Three.js, Babylon.js, Unity, Unreal Engine, Godot, Windows 3D Viewer가 기본적으로 glTF를 지원합니다.
관련 glTF 변환 쌍
glTF JSON 에셋을 glTF 바이너리 컨테이너로 변환하여 별도의 텍스트 매니페스트, 바이너리 버퍼, 텍스처를 단일 파일로 패키징하여 더 빠른 웹 전송을 달성합니다.
GLB를 GLTF로 변환하면 단일 바이너리 컨테이너가 별도의 텍스트 및 에셋 파일로 해제되어 개발자가 텍스처와 3차원 지오메트리 데이터를 간편하게 편집할 수 있습니다.
Wavefront OBJ 지오메트리 파일을 glTF JSON 매니페스트로 변환하면 정적 3차원 모델이 표준 웹 브라우저 내에서 즉시 로드되는 웹용 에셋으로 현대화됩니다.