GlTF

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

glTF는 3D 모델 및 장면을 위한 파일 형식으로, 2012년 크로노스 그룹에서 시작하여 WebGL 및 COLLADA를 결합하는 작업에서 시작되었다. 2015년 glTF 1.0 버전이 발표되었고, 2017년 glTF 2.0 버전이 출시되면서 물리 기반 렌더링(PBR)을 지원하고 GLB 바이너리 형식을 포함했다. 마이크로소프트, 구글, 페이스북 등 여러 회사에서 glTF를 지원하며, 증강 현실 및 모델링 소프트웨어와 통합된다. glTF는 확장성을 가지며 Draco, KTX 2.0, PBR 익스텐션과 같은 다양한 확장 기능을 지원한다. 또한, glTF는 3D 타일 및 VRM과 같은 파생 형식을 가지고 있으며, 소프트웨어 생태계는 로더, 변환 도구, 편집 도구, 유틸리티 라이브러리, 검증기 등을 포함한다.

GlTF - [IT 관련 정보]에 관한 문서
glTF 개요

이미지 준비중입니다.

glTF 로고
종류3차원 컴퓨터 그래픽스
개발자크로노스 그룹
첫 출시일2015년 10월 19일
최신 버전2.0.1
최신 버전 출시일2021년 10월 11일
파일 확장자.gltf, .glb
MIME 형식model/gltf+json, model/gltf-binary
기반JSON
웹사이트glTF 공식 웹사이트
📚 더 읽어볼만한 페이지
  • WebGL - Three.js
    Three.js는 WebGL 기반 3D 그래픽을 웹 브라우저에서 쉽게 구현하도록 돕는 자바스크립트 라이브러리로, 장면 관리, 카메라 제어, 애니메이션, VR/AR 지원 등 다양한 기능을 제공하며 MIT 라이선스로 배포된다.
  • 3차원 그래픽스 파일 포맷 - VRML
    VRML은 3차원 가상 현실 공간을 표현하기 위한 텍스트 기반 파일 형식으로, 폴리곤 정보 지정, URL 연결을 통한 객체 확장, 애니메이션 및 상호 작용 지원 등의 기능을 제공했으나 현재는 X3D로 대체되어 3D 모델 교환 형식으로 활용된다.
  • 3차원 그래픽스 파일 포맷 - STL (파일 포맷)
    STL 파일 형식은 3차원 형상을 삼각형 메쉬로 표현하는 파일 형식으로, 3D 프린팅, CAD, CAM 시스템 등에서 사용되며, ASCII 형식과 바이너리 형식으로 데이터를 저장하고, 각 삼각형은 법선 벡터와 세 개의 꼭짓점 좌표로 정의됩니다.
  • 그래픽 표준 - WebGL
    WebGL은 웹 브라우저에서 3차원 그래픽을 렌더링하기 위한 API이며, OpenGL ES를 기반으로 개발되어 다양한 웹 브라우저와 모바일 환경에서 지원된다.
  • 그래픽 표준 - 크로노스 그룹
    크로노스 그룹은 AMD, 애플, 구글, 엔비디아, 삼성 등 주요 기술 기업들이 참여하는 비영리 컨소시엄으로, OpenGL, Vulkan, OpenCL, glTF 등 그래픽 및 컴퓨팅 관련 개방형 표준 API를 개발하고 관리하며 메타버스 상호 운용성 표준 개발에도 기여한다.

2. 역사

glTF는 2012년 크로노스 그룹에서 COLLADA와 WebGL을 결합하는 작업에서 시작되었다. 파브리스 로비네(Fabrice Robinet)는 JSON 포맷에 기반한 효율적인 이진 파일을 사용하는 방식을 제안하였고, 2012년 SIGGRAPH에서 개최된 WebGL 밋업(meetup) 행사에서 브랜든 존스(Brandon Jones)와 파브리스 로비네가 첫 번째 glTF 관련 데모를 보여 주었다. 초기에는 WebGL 트랜스미션 포맷(WebGL Transmissions Format, WebGL TF)으로 불렸다.

2013년 3월, Cesium에서는 glTF 채택을 공식 발표하였고, 2017년 8월 10일에는 3D Tiles가 OGC Community 표준으로 채택되었다. 이 표준은 glTF 기반으로서 위치 데이터 정보, 메타데이터, 스타일 데이터를 대규모의 3차원 지형 데이터 세트로 저장하고 이를 스트리밍하는데 활용하였다.

2.1. glTF 1.0

2012년에 COLLADA 워킹 그룹 멤버들이 이 파일 형식을 구상했다. SIGGRAPH 2012에서 크로노스는 glTF의 데모를 선보였으며, 당시에는 WebGL 전송 형식(WebGL TF)이라고 불렸다. 2015년 10월 19일, glTF 1.0 표준이 공식 발표되었다.

SIGGRAPH 2016에서 오큘러스는 자사의 ovrscene 형식과의 유사성을 언급하며 glTF 채택을 발표했다.

2.2. glTF 2.0

glTF 2.0 표준은 2017년 6월 5일 Web3D 2017 Conference 행사에서 공식 발표되었다. glTF 2.0은 1.0 버전에서 파일 형식을 완전히 개편한 두 번째 버전으로, 대부분의 도구가 2.0 버전을 채택했다.

glTF 2.0에는 물리 기반 렌더링(PBR)이 추가되어, WebGL 셰이더를 대체하였다. 이는 SIGGRAPH 2016에서 프라운호퍼(Fraunhofer)가 처음 제안한 내용을 기반으로 한다. PBR 머티리얼은 표준으로 메탈릭・러프니스, 확장으로 스페큘러・발광 모델을 지원한다.

GLB 바이너리 형식이 기본 사양에 추가되었다. 그 외에도 희소 액세서와 얼굴 애니메이션과 같은 기술을 위한 모프 타겟이 추가되었으며, 최상위 glTF 객체 속성을 배열로 대체하여 인덱스 기반 접근을 더 빠르게 하는 등 성능 향상 및 특수한 경우를 위한 스키마 조정과 호환되지 않는 변경 사항이 포함되었다.

2017년 3월 3일, 마이크로소프트는 Paint 3D, 3D 뷰어, Remix 3D, Babylon.js, Microsoft Office를 포함한 자사 제품군에서 3D 에셋 형식으로 glTF 2.0을 사용할 것이라고 발표했다. 같은 행사에서 Microsoft, Fraunhofer와 University of Pennsylvania 학생들은 glTF 2.0 컨텐츠를 WebGL, DirectX, Vulkan을 이용하여 렌더링하는 것을 시연하였다. Sketchfab 또한 glTF 2.0 지원을 발표했다.

2019년 현재, glTF 및 GLB 형식은 DGG, UX3D, Sketchfab, 페이스북(Facebook), 마이크로소프트(Microsoft), 오큘러스(Oculus), 구글(Google), 어도비(Adobe Inc.), Box, TurboSquid, 언리얼 엔진(Unreal Engine) 및 Qt Quick 3D를 포함한 회사에서 사용하고 지원한다. 이 형식은 증강 현실의 중요한 표준으로 언급되었으며, 오토데스크 마야(Autodesk Maya), 오토데스크 3ds 맥스(Autodesk 3ds Max), Poly와 같은 모델링 소프트웨어와 통합된다.

2022년 7월, glTF 2.0은 국제 표준화 기구(ISO)/국제 전기 기술 위원회(IEC) 12113:2022 국제 표준으로 출시되었다. 크로노스(Khronos)는 ISO/IEC와 크로노스 사양 간에 장기적인 차이가 없도록 업데이트 및 새롭게 널리 채택된 glTF 기능을 ISO/IEC 12113의 최신 버전으로 정기적으로 제출할 것이라고 밝혔다.

2.3. GLB

GLB는 glTF의 이진 파일 형식으로, 외부 이미지를 참조하는 대신 직접 텍스처를 포함한다. GLB 파일은 페이스북 3D 게시물에 사용된다.

glTF 형식은 데이터를 주로 JSON으로 저장하며, JSON은 메쉬 데이터, 이미지 등을 저장하기 위해 버퍼(buffer)로 알려진 바이너리 데이터 덩어리를 포함하거나 외부 파일을 참조할 수 있다. 바이너리 .glb 형식 또한 JSON 텍스트를 포함하지만, 바이너리 청크 헤더로 직렬화되어 파일에 직접 덩어리를 추가할 수 있다.

GLB 형식은 glTF의 바이너리 형식이며, 텍스처를 외부 파일 참조 없이 함께 포함할 수 있다. 이는 페이스북 3D 게시물의 표준 형식으로도 사용된다.

3. 파생 형식

OGC 커뮤니티 표준으로 제안된 3D 타일은 glTF를 기반으로 하여 대규모 3D 지리 공간 데이터 세트를 스트리밍하기 위한 공간 데이터 구조, 메타데이터 및 선언적 스타일 지정을 추가했다.

VRM은 VR용 모델 형식이며, .glb 형식을 기반으로 한다. 이는 3D 휴머노이드 아바타 사양 및 파일 형식이다.

4. 확장

glTF 형식은 JSON을 사용하여 새로운 데이터와 기능을 추가하는 확장(익스텐션)을 지원한다. 확장(익스텐션)은 노드, 애니메이션, 재질, 텍스처, 전체 문서 등 glTF의 모든 부분에 적용할 수 있다. 크로노스(Khronos)는 GitHub에서 공식 크로노스 확장과 일부 타사 확장을 포함하는 glTF 확장 레지스트리를 유지 관리한다.

몇 가지 주요 확장은 다음과 같다:

* PBR 확장: 실제 물체의 물리적 외관을 모델링하여 개발자가 정확한 외관을 가진 현실적인 3D 에셋을 만들 수 있도록 한다. 새로운 PBR 확장이 출시됨에 따라 glTF 프레임워크 내에서 PBR 기능을 지속적으로 확장하여 더 광범위한 장면과 물체를 현실적인 3D 에셋으로 렌더링할 수 있다.
* 범용 텍스처 압축을 위한 KTX 2.0 확장: glTF 형식의 3D 모델을 고도로 압축하고 기본적으로 지원되는 텍스처 형식을 사용할 수 있도록 하여 파일 크기를 줄이고 렌더링 속도를 높인다.
* [[드라코|드라코(Draco)]]: 3D 파일 크기를 줄이기 위해 3D 메시를 압축하고 압축 해제하는 메쉬 압축 확장이다. 정점 속성, 법선, 색상 및 텍스처 좌표를 압축한다.
* OMI 그룹 확장: 게임 엔진 상호 운용성을 위한 다양한 glTF 확장을 개발했다. 여기에는 물리 형태, 물리 객체, 물리 조인트, 오디오 재생, 좌석, 스폰 지점 등을 위한 확장이 포함된다.
* VRM 컨소시엄 확장: 동적 스프링 본 및 툰 머티리얼을 포함한 고급 휴머노이드 3D 아바타를 위한 glTF 확장을 개발했다.

5. 비판

glTF는 씬 구조, 머티리얼 적용, 스키닝, 조명과 관련하여 많은 기능이 부족하며, 물리적 단위나 전역 상향 벡터를 정의할 수 없다는 비판을 받는다. 특히 애니메이션 지원이 블렌더, 오토데스크 3ds 맥스, 오토데스크 마야를 포함한 일부 모델링 소프트웨어에서 생성된 애니메이션을 정확하게 재현하기에 불충분하다는 지적이 있다. 이는 큐빅 스플라인 보간에 시간이 선형적이어야 한다는 요구 사항 때문이다.

베테랑 엔진 개발자인 에릭 렝겔은 COLLADA나 OpenGEX영어와 같은 기존의 3D 교환 형식과 비교하여 glTF의 유연성 부족과 설계 부실을 비판했다. 고도 엔진 수석 개발자 후안 리니에츠키 또한 혹독한 비판을 했으며, 렝겔의 기능 비교에 대해 다양한 문제의 중요성에 대한 동의와 반론을 제시했다.

6. 소프트웨어 생태계

glTF는 다양한 소프트웨어 및 도구에서 널리 지원된다.

* 로더:
* Three.js
* Babylon.js
* [http://cesiumjs.org Cesium]
* [https://github.com/pex-gl/pex PEX]
* [http://xeogl.org xeogl]
* [https://aframe.io A-Frame]
* Godot 게임 엔진

* 변환 도구:
* COLLADA
* FBX
* .obj
* Assimp (가져오기 및 내보내기 지원)

* 편집 도구 (내보내기 지원):
* Blender
* Vectary
* Autodesk 3ds Max (Verge3D exporter 사용 또는 기본)
* Autodesk Maya (babylon.js 내보내기 사용 또는 기본)
* Modo
* Paint 3D
* Substance Painter
* [https://support.clo3d.com/hc/en-us/articles/360051525034-glTF-2-0-GLTF-GLB-File CLO 3D]
* Autodesk Inventor
* Houdini
* Godot

* 유틸리티 라이브러리:

👆
좌우로 밀어서 보기
프로그래밍 언어지원 여부
자바스크립트지원
Node.js지원
C++지원
C#지원
자바지원
Go지원
러스트지원
Haxe지원
Ada지원
TypeScript지원
Haskell지원


* 검증 도구:
* [https://github.com/KhronosGroup/glTF-Validator glTF validator]: glTF 표준 준수 여부 확인

* 3D 커머스:
* 전자 상거래에서 3D 에셋의 생성 및 배포를 위한 지침 및 표준에 glTF 통합
* 3D 커머스 뷰어 인증 프로그램: 3D 뷰어가 glTF 파일 형식을 사용하여 3D 제품을 정확하고 안정적으로 표시할 수 있는지 입증
* 3D 커머스의 에셋 지침: 3D 커머스에서 glTF 파일 형식을 사용하는 모범 사례 포함 (2020년 출시)

* 기타:
* [https://github.com/KhronosGroup/glTF#gltf-tools glTF GitHub repository]에서 관련 소프트웨어 도구 정보 확인 가능
* Khronos는 [https://ecosystem.khronos.org/ 생태계 사이트]에 라이브러리 및 관련 응용 프로그램 목록을 보관
* Khronos는 glTF 에셋을 보기 위한 glTF 샘플 뷰어를 유지 관리