https://sketchit.tistory.com/entry/glTF-GL-Transmission-Format%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

 

[정보관리 기술사] glTF (GL Transmission Format)란 무엇인가?

glTF의 정의 glTF(GL Transmission Format)는 3차원 장면과 모델을 표현하는 파일 포멧이며, 3D 모델 정보를 JSON(JavaScript Object Notation)표준으로 저장하는 파일형식이다. "Kronos Group"이 개발을 리드하는 무료

sketchit.tistory.com

 

.Gltf 는 크로노스 그룹에서 개발을 리드하는 무료 국제 표준 확장자이며

Gltf를 3D 모델계의 JPGE 라는 슬로건과 함께 최적화를 내세우며 2016년 부터 사용하게 되었다.

 

많은 개발 및 디자인 툴에서 최적화를 위해 널리 보급되어 사용되고 있으며,

최종 최적화 단계에서 컨버팅 하고 사용하고 있다.

 

https://www.youtube.com/watch?v=tonSNnEj-ow&ab_channel=TheKhronosGroup

 

.GLTF 의 특징으로는 3D 좌표계인 Geometry 정보와 Texture를 하나의 파일로 묶어 저장한다는 특징을 가지고 있으며,

그 밖에 애니메이션(+몰프타겟 및 Skin) 및 카메라 정보값을 하나의 파일로 가지고 있다는 장점이 있다.

 

*단 많은 DCC 툴에서 공식적으로 지원하는 것이 아니기 때문에 개인 개발자의 노력으로 서브 플러그인을 만들어 사용하는 경우가 많았다.

이 내용은 Web 3D 콘텐츠를 제작하며 최대의 효율(시간과 퀄리티)을 낼 수 있는 방법에 대해 서술하고자 한다.
시간이 지나면서 많은 툴에서 지원한다면... 다시 바뀔수도 있다!!!

 

1. Maya Setting

Main으로 사용하는 Dcc Tool의 경우 Maya를 사용하고 있어 Maya 사용자를 기준으로 작성을 이어가고자 한다.


(Mesh + Ani 30Fps)

 

(Mtl Setting)

 

** FBX에서 지원되는 Material을 사용하는 것을 권장하며, Lambert 를 추천 한다.
***Vray, Anrold Mtl 은 지원하지 않는다.

**** 3Ds max 최신버전에서는 Gltf Export를 지원하지만 애니메이션이 출력되지 않는 단점이 존재한다.

***** Maya의 경우에는 Plugin을 통해 GLTF로 출력은 가능하다 (하지만 안쓰는 이유는...)

****** Export의 경우 최대한의 최적화를 위해 Blender를 거치게 된다. (Maya 도 공식지원 됬으면,,,,)

 

2. Blender Setting

 

Maya에서 Export한 FBX를 확인하게 된다면 그래프 값이 깨져서 들어오는 것을 확인 할 수 있다.

가장 좋은 방법은 Maya FBX Export 시에 확인해서 넘겨받는 것이 Best이지만 상황상 할수없다면 Window 3D Viewer를 활용하여 GLB로 컨버팅해오는 것이 정신건강에 이롭다. 

Window 3D Viewr

*가장 좋은 방법은 Maya에서 지원하거나 Blender에서 모든 애니메이션 세팅을 끝내는 것이 좋다.

**Key가 Bake 되기 때문에 불필요한 Key 값이 늘어나 용량이 늘어난다는 단점이 있다.

*** 30Fps로 작업된 Animation이 24Fps로 변경되어 저장되며

 

 

익스포트 세팅을 확인하게되면 크게 2가지를 확인해야된다.

 

(1) Animation NLA

 

Blender에서는 NLA라는 시스템을 사용하고 있다. 이를 통해 애니메이션이 1개로 익스포트 되는것이 아닌 오브젝트마다 애니메이션이 따로 출력되는 문제가 발생된다. 그렇기에 기본 체크박스가 셀랙되어 있는 부분을 풀어서 저장해주어야 FBX에 1개의 애니메이션 트랙만 저장이 된다.

 

(2) Compress

 

Geometry 부분을 확인하게 되면 Compression 항목이 있을 것이다 이것은 Draco 코덱을 활용하여 압축하는 방식이며

기존 GLTF보다 더 높은 압축률을 자랑한다.

 

GLTF로 압축하게된다면 이미지 데이터를 RGB -> Index Color Sapce로 변경해주고,

Draco의 경우 저장되어있는 이미지 데이터를 WebP 변경 해준다.

 

그밖에 알고리즘을 통해 Vertex 및 Animation을 압축하는 것으로 예상되며 Draco를 사용하게 된다면 모바일과 PC 플랫폼에서 낮은 리소스 사용량을 발생시켜 프로젝트에 사용이 가능하다면 사용하는 것이 좋다.

*프로젝트 상황에 따라 Draco를 사용하지 못하는 경우가 존재한다.
*컴프레션 레벨 7이상의 경우 Vertex가 변경되는 문제가 간혹있어 6정도로 압축하는 것이 정신건강에 이롭다.

 

 Q&A

Morph, Blend Shape
>>> FBX에 정상적으로 담기면 다행이겠지만,,, 그렇지 못하다... Blender로 작업해서 Export하는 것이 정신건강에 이롭다.

Image resource

>>> 단순하게 컬러만 사용되는 경우를 제외하고 실사 텍스처가 사용될 경우 GLTF에 담아내는 것이 아닌 따로 임포트 받는것이 퀄리티를 지킬 수 있는 방법니다
*GLTF + Draco를 사용한다면 Export 시에 알고리즘으로 인해 Textuer 퀄리티 저하가 발생되기 때문에 이점은 꼭 유념해야된다.

 

Scale Error

>>> Maya, 3Ds Max에서 작업이 진행된다면 스케일 값이 1/100으로 줄어있는 문제가 발생되게 된다.

Pivot Error

>>> 간혹 오브젝트 Pivot이 0,0,0으로 수정되는 버그가 있어 따로 Null Grp을 상위에 감싸서 사용하는 것이 정신건강에 이롭다.

+ Recent posts