국제 표준 VRM의'세계 통일'3D 장면 보존 규격glTF 적용

7047 단어 UniVRMVRMKhronosglTF
OpenGL, Vulkan 등 특정 기업과 플랫폼에 의존하지 않는 국제 표준Khronos Group을 정의·관리하는 곳이 있다.
현재 전 세계는glTF라는 새로운 포맷(규격)에 주목하고 있다.

(from: KhronosGroup/glTF: glTF – Runtime 3D Asset Delivery )
이게 도대체 무슨 격식이야?

World Unified 3D 장면 저장 사양glTF


GL 전송 형식(glTF)은 API에서 중립적인 운행시간 자산의 배달 형식이다.glTF는 효율적이고 확장 가능한 상호 운용 가능한 형식으로 3D 내용을 전송하고 탑재함으로써 3D 제작 도구와 현대 3D 응용을 교량으로 한다.
(from: glTF Overview - The Khronos Group Inc )
최근 3D 모델은 각 기업과 단체가 개발한 3D 모델링 도구(Maya와 Blender 등)를 활용해 모델을 제작하고 이를 운행 시간의 게임과 영화 렌더링 등으로 활용하고 있다.
예를 들어 UnityUnity 설명서: 3D 응용 프로그램에서 모델을 가져오는 방법은 무엇입니까?에도 objfbx 등을 주체로 다양한 양식을 읽을 수 있다고 쓰여 있다.
그러나 운행 시간에 비해 이런 형식은 대부분 제작 시 용이성을 바탕으로 제작된 것이기 때문에 실제 운행 시 쓸모없는 데이터를 입력하거나 변환해야 한다.
게임 등 실시간 렌더링이 요구되는 곳에는'운행 시간에 더 적합한 포맷'이 필요하다.
여기에 등장하는 것은 이glTF 격식이다.
동기란에 이렇게 적혀 있다.
지금까지의 전통적인 3D 모델 형식은 오프라인으로 사용되고 다운로드 속도와 운행 시간의 읽기 속도로 최적화되지 않았다.향후 웹GL과 OpenGLES 등에서 모델을 손쉽게 공유할 것으로 예상됨에 따라 다양한 사용자, 앱 터미널에서 효율적으로 내려받아 펼치는 범용 포맷이 필요하다.
glTF에서 JSON의 장면 설명과 GPU 버퍼에 기하학적, 애니메이션을 그대로 두는 형식의 2진법 제공에 따라 공급업체와 운행시간에 의존하지 않고 장면을 노드, 망상물, 카메라, 소재, 애니메이션 등 층구조에 유지하여 선명하게 읽게 한다.
(from glTF/README.md at master · KhronosGroup/glTF )
정점 좌표와 애니메이션 데이터 등 버퍼 메모리(같은 데이터의 배열)는 GPU가 읽을 때와 같은 이진 형식을 이용하여 장면 전체의 구성과 요소의 관련, 소재의 재질 설정 등을 일반json 형식으로 기술한다.알기 쉽고 고속이라는 두 가지 장점의 격식이 되었다.

3D 모델계의 JPEG를 대상으로 합니다.



(from: glTF Overview - The Khronos Group Inc )
Khronos Group은 이미지jpeg, 영상H.264, 소리mp3처럼 3D 모델은 glTF로 많이 표현하고 싶다고 주장했다.
이미 많은 응용 프로그램과 서비스가 이 형식에 대응할 수 있어 세계적으로 통용되는 형식이라고 할 수 있다.

(from: glTF Overview - The Khronos Group Inc )
윈도우 10에는 기본적으로 glTF 뷰어가 내장되어 있기 때문에glTF 모델을 쉽게 접할 수 있습니다.

glTF 사양


규격을 확인해 보겠습니다.
디자인 목표로 다음과 같은 내용을 열거했다.
  • 컴팩트한 파일 크기
  • 빠른 읽기:glTF 데이터 구조는 GPU API 데이터와 가능한 한 같기 때문에 퍼스 등 추가 작업이 필요하지 않으므로 빠른 읽기
  • 독립 실행형: 3D 엔진에 의존하지 않음
  • 모든 3D 장면의 표현: 객체를 내보내는 것은 적용에 적합하지 않습니다.여러 장면을 단숨에 읽고 싶다
  • 확장성: 향후 성장과 개선을 견딜 수 있는 확장 메커니즘
  • 이를 실현하기 위해 장면을 utf8 문자열로 표시json부분, GPU API와 같은 데이터 구조를 가진 이진부분, png또는jpg의 무늬 세 가지로 나눈다.

    (from: glTF/README.md at master · KhronosGroup/glTF )
    또한 장면은 노드를 바탕으로 하는 차원 구조로 표현되기 때문에 인형 모델이 하나, 건축물이 하나일 뿐만 아니라 이런 복합체도 하나의glTF로 정의할 수 있다.

    (from: glTF/README.md at master · KhronosGroup/glTF )
    사소한 요소는 생략할 수 있지만, 2진법의 위치bufferViewaccessor, 소재의 정의와 피부 망상물(선체 구조) 등을 참조하기 위해서는 3D모델을 표현하기에 충분한 구조다.제이슨으로 구성되어 있기 때문에 파이사를 만드는 것도 간단하다.
    또한 사양 내에서 Physically-Based Rendering(물리적 베이스 렌더링)을 지원하는 것도 특징입니다.

    웹 브라우저에서의 표현


    이 포맷은 브라우저에서 3D를 표현하는 웹글도 활성화하기 위해 제작됐다.
    glTF Sample Viewer: 이것공식 샘플 뷰어이지만 브라우저에서도 모형을 편안하게 읽을 수 있다고 느낄 수 있을 것 같아요(GPU를 탑재하지 않은 PC라면 무겁긴 한데...).
    현재 각종 웹GL 프레임워크는glTF를 지원하고three.js,babylon.js 등'어쨌든glTF 출력하면 웹GL로 출력할 수 있다'는 수준에 이르렀다.

    확장성


    디자인 목표 중 하나로서 확장성도 강하다.
    Khronos Group 및 기타 공급업체의 확장많다
    DDS 텍스처 대응, Google이 권장하는 형상 클라우드의 새로운 압축 형식google/draco 대응 등은 대부분 베이스 부분을 확장합니다.
    하지만 정의가 json이기 때문에 거기에 뭘 넣어도 상관없다.

    VR 공간을 위한 인간형 가상 이미지 형식인'VRM'


    3D 모델에서 특히'VR 공간의 인간형 가상 이미지'를 제작할 때 편리한 정의를 독자적인 확장으로 구현VRM했다.

    (from: VRM )
    2019년 4월 24일 출범한 VRM 컨소시엄라 불리는 단체가 제창한 기준으로, 이제 본격적으로 시행Unity 지원 UniVRM된다.
    VRM의 설계 목표는 다음과 같습니다.
    '인형 역할과 가상 이미지'에서 미세한 모델 데이터의 차이를 흡수하고 통일시켜 응용 프로그램의 처리를 간단하게 한다.
    from: VRM 소개뭘 할 수 있어? -VRM
    예를 들어glTF에서 정의되지 않은'T-Pose 고정'이나'bon에 회전과 비례를 넣지 마라'는 제약을 넣어'자신의 가상 이미지'를 쉽게 이동할 수 있다.
    VR 앱에서는 1인칭 시점에 헤드를 그리지 않는다는 정의, 이 모델에 대한 라이선스 기재,'아이하나'의 입 동작 사전 등록 등 실제 앱에서 사용할 때는'있으면 편하잖아'라는 규격이 담겨 있다.자세한 내용은 확인하십시오VRM 사양 - VRM.
    VRM 컨소시엄의 회원 일람표에서 보듯 아시아권 내 주요 IT 기업들은 이미 한곳에 늘어섰다.이 격식은 작년에 탄생한 것으로 앞으로 세계적으로 유명해지고 보급될 것으로 보인다.
    현재 이 VRM 포맷을 활용할 수 있는 앱은 여기 앉을게요.이고, 이걸 쓴 2019/04/25는 현재 41개다.앞으로 셀 수 없이 많은 앱이 대응할 것으로 기대하고 있다.

    좋은 웹페이지 즐겨찾기