glTF (GL Transmission Format) はJSONによって3Dモデルやシーンを表現するフォーマットである。「3DにおけるJPEG」と表現されることもある。Khronos Group 3D Formats Working Groupによって開発され、APIを問わないランタイムアセット配布フォーマットとしてHTML5DevConf 2016において発表された。glTFは3Dシーンを圧縮し、WebGLなどのAPIを利用するアプリケーションの実行時処理を最小化する、効率的で相互運用可能なアセット配布フォーマットとなることを意図している。glTFはまた、3Dコンテンツ作成ツールやサービスのための共通発行フォーマットを定義している。

glTF
開発元 Khronos Group
初版 2015年10月19日 (8年前) (2015-10-19)[1]
最新版
2.0 / 2017年6月9日 (6年前) (2017-06-09)[2]
リポジトリ ウィキデータを編集
プラットフォーム クロスプラットフォーム
サポート状況 Active
種別 3DCG
公式サイト Khronos.org/glTF
現在 17 September 2017
テンプレートを表示

歴史 編集

2012年3月、KhronosはCOLLADAとWebGLの活用に関する構想のための会合を行った[3][4][5]。その際にFabrice Robinetが外部のバイナリデータを参照する効率的なJSONフォーマット案の実装を希望した。SIGGRAPH 2012のWebGLミートアップでBrandon JonesとFabrice Robinetによって"WebGL TF" (WebGL Transmissions Format) と題した形式のデモが行われた[6]

2013年3月には、Google Earth APIのオープンな代替であるCesiumが、「独自のアセット形式を新しく設計する」代わりに、glTFを採用する旨を発表した[7]

その後の2015年8月10日には、現在は名を変えてOGC Community Standardとなっている3D Tilesが空間データ構造やメタデータ、巨大でヘテロジニアスな3D空間データセットの整形のための記述をglTFに加える形で構築された[8][9][10]

glTF 1.0 編集

2015年8月19日、glTF 1.0の仕様が公表された[11]

2016年6月、ジョン・カーマックは以下のように述べている[12]

長きに渡って、共通の画像、音声、動画やテキストのフォーマットの水準に相当する、効率的で使いやすい3Dシーンの規格が求められていた。ただの編集フォーマットに留まらず、また必ずしも高度に最適化されたプラットフォーム固有のアプリケーション用途のフォーマットとは限らず、多様なアプリケーションによって直接作成・消費されうる、インターネットに繋がった自宅にある何かのようなものを。

SIGGRAPH 2016においてOculusは独自のovrsceneフォーマットとの類似性を根拠にglTFとの親和性を主張した[13]

2016年6月、マイクロソフトはglTFの策定に協力するため、Khronos Groupの3D Formats working groupに加入した[14]

2016年12月、Archilogicは3Dの見取り図をglTFで出入力できる機能をWebベースの3Dモデルエディタに追加した[15]

glTF 2.0 編集

2017年3月3日のGDC WebGL/WebVR/glTFミートアップにおいて、MicrosoftがglTF 2.0を採用し、ペイント3DやView 3D、3Dモデル共有サイトのRemix3D、Babylon.js、Officeなどの自社製品で共通のアセットフォーマットとして使用することを発表[16][17]フラウンホーファーIGDやペンシルバニア大学の大学院生らと共にglTF 2.0アセットをWebGL、DirectX、Vulkanでレンダリングするデモを行った[18]。同じ場ではSketchfabがglTF 2.0のサポートを発表した[19]

同じく2017年3月にGoogleは3Dメッシュの圧縮形式であるDracoをglTFに統合させる拡張を発表した[20]

glTF 2.0はもともとglTF 1.0.1 (後のglTF 1.1) として2016年6月に開発が開始され、それはglTFバリデータの開発中に見つかった、めったに発生しないケース (corner case) を厳密に取り扱うためのバグフィックスリリースだった[21][22]。折しもフラウンホーファーにより急速に発達した物理ベースレンダリング (PBR) のための拡張が提案されたこともあって[23]、glTF 1.1はAPI中立なPBRを実現すべく以下に挙げられる新機能を加えてglTF 2.0となった: [24]

  • 標準でメタリック・ラフネス、拡張でスペキュラ・発光のモデルに対応したPBRマテリアル[25]
  • 表情アニメーションなどのためのモーフターゲットや差分データ。
  • glTF 1.0のバイナリ拡張 (glb) のコア仕様への統合。
  • スキーマの微調整、及び曖昧な領域やパフォーマンスのための破壊的変更。トップレベルのプロパティを高速化のためにオブジェクトから配列に変更したことなど[26]

glTF 2.0は2017年6月5日のWeb3D 2017 Conferenceで正式発表された[27]

8月3日、SIGGRAPH glTF BOFにおいて、MicrosoftによるMinecraftのglTF出力、AutodeskによるForgeのglTF入力、MozillaとGoogleによるA-Frame上でのglTFアセット表示などのデモが行われた他、Sketchfab上のglTFアセットの数が十万を超えたことが発表された。

On September 6, 2017, Binomial announced plans to make their cross-platform texture compression format an open standard.

2017年9月7日には、Blender はglTF出力プラグインの開発を発表し[28]、2018年9月現在はサードパーティプラグインとして存在している。

2017年9月時点で、Apple Watch Series 3のWebサイト はglTFを使用している。[29]

2018年2月20日、Facebookは自社のプラットフォーム上でglTF 2.0を使ったFacebook 3D Posts英語版のベータテストを発表し[30][31]レゴの3Dモデルのデモンストレーションを実施した[32]

2013年以降のNORAD Tracks SantaはサンタとトナカイのモデルにglTFを用いていた。

Unityにおける出入力対応[33] や複数エンジンを搭載したビューワーやバリデータの開発も進んでいる。[34]

On March 11, 2018, the Cairo Buddy system team has agreed to support glTF.

2018年6月19日、Oculus Homeはバージョン1.27でglTF2.0に対応した。[35][36]

GLB 編集

glbフォーマットはglTFのバイナリ形式であり、テクスチャを外部ファイルを参照することなく同梱することができる。これはFacebook 3D Posts英語版の標準フォーマットでもある。

glTFのロードマップ 編集

2017年6月30日からglTFの次の仕様や拡張、エコシステムについての議論がGitHubにおいてなされている[37]

批判 編集

ベテランのエンジン開発者であるEric Lengyelは、COLLADAOpenGEX英語版のような既存の3D交換フォーマットと比較して、glTFにおける柔軟性の欠如や設計の貧弱さを批判している[38]

He points out that glTF lacks many capabilities when it comes to scene structure, material application, skinning, and lighting, as well as an inability to define physical units or a global up direction vector. He further reveals that the animation support in glTF is insufficient for accurately reproducing animations created in most popular modeling software (including Blender, Autodesk 3ds Max, and Autodesk Maya) due to the requirement that time be linear for cubic spline interpolation. Godot Engine lead developer Juan Linietsky also provided harsh criticism[39] and has responded to Lengyel's feature comparison with both agreement and disagreement about the importance of various issues.[40]

ソフトウェアエコシステム 編集

 Three.js、BabylonJS、CesiumPEXxeoglA-Frameを始めとする多くのオープンソースWebGLエンジンにglTFの読み込み機能が搭載されている。

オープンソースのglTFコンバータも存在し、COLLADAFBXOBJからの変換が可能である。Assimp は出力にも対応している。

Blenderをはじめ3ds Max (Verge3Dエクスポーターを使用)、MayaModoペイント3D、Substance Painterなど様々な3DCG作成ソフトウェアがglTFの出力に対応している[41]

オープンソースの glTFユーティリティライブラリ は、JavaScript, Node.js, C++, C#, Java, Go, Rust, Haxe, Ada, TypeScriptなどの言語で利用可能である。

3DモデルがglTFの仕様に適合しているかどうかを確認できるオープンソースのglTFバリデータ が公式に提供されている[42]

glTFの公式GitHubリポジトリでは対応ソフトウェアなどのリストが更新されている。

参照 編集

参考文献 編集

  1. ^ Khronos Finalizes glTF 1.0 Specification - Khronos Group Press Release”. 2018年9月13日閲覧。
  2. ^ KhronosGroup/glTF”. 2018年9月13日閲覧。
  3. ^ https://www.khronos.org/assets/uploads/developers/library/2012-GDC-COLLADA-WebGL-KITE-meetups/COLLADA%20Meetup%20GDC%20Mar12.pdf
  4. ^ https://www.youtube.com/watch?v=xhR-vya1zRU&feature=youtu.be&t=1510
  5. ^ https://www.youtube.com/watch?v=vhPGVzClUBY&feature=youtu.be&t=280
  6. ^ https://www.khronos.org/webgl/wiki/Presentations#SIGGRAPH_2012_WebGL_BOF
  7. ^ http://blog.virtualglobebook.com/2013/03/how-i-got-involved-in-gltf-and-khronos.html
  8. ^ Cesium 3D Tiles”. 2018年9月13日閲覧。
  9. ^ OGC is considering a proposed work item for 3D Tiles as a Community Standard”. 2018年9月13日閲覧。
  10. ^ 3D Tiles Community Standards Justification”. 2018年9月13日閲覧。
  11. ^ https://www.khronos.org/news/press/khronos-finalizes-gltf-1.0-specification
  12. ^ https://www.khronos.org/news/press/significant-gltf-momentum-for-efficient-transmission-of-3d-scenes-models
  13. ^ https://www.khronos.org/assets/uploads/developers/library/2016-siggraph/glTF-MobileVR-Oculus-BOF-Update-SIGGRAPH_Jul16.pdf
  14. ^ https://blogs.windows.com/buildingapps/2016/10/28/bringing-3d-to-everyone-through-open-standards/#vPc4g6svcBfmMRMy.97
  15. ^ https://spaces.archilogic.com/blog/gltf-import-export
  16. ^ Trevett, Neil (2017年3月2日). “Microsoft announces at #Khronos #WebGL meetup that they will be using #glTF 2.0 as the 3D asset format across their product linepic.twitter.com/qsLymcSIhX” (英語). @neilt3d. 2017年9月26日閲覧。
  17. ^ Cozzi, Patrick (2017年3月3日). “glTF is at the core of Microsoft's 3D for Everyone vision thanks to @iamSBTron and @bghgary. Paint 3D, Viewer 3D, remix3d, Babylon, Office!!pic.twitter.com/3jRsk9Rilx” (英語). @pjcozzi. 2017年9月26日閲覧。
  18. ^ Bhatia, Saurabh (2017年3月3日). “webGL/webVR/glTF meetup - the same glTF 2.0 asset rendered on webGL, DirectX and Vulkan!pic.twitter.com/k4Kbc79g8w” (ドイツ語). @iamSBTron. 2017年9月26日閲覧。
  19. ^ glTF 2 in Sketchfab” (2017年3月3日). 2018年9月13日閲覧。
  20. ^ KHR_draco_geometry_compression by fanzhanggoogle · Pull Request #874 · KhronosGroup/glTF” (英語). GitHub. 2017年9月26日閲覧。
  21. ^ Spec changes from 1.0 to 2.0 · Issue #605 · KhronosGroup/glTF” (英語). GitHub. 2017年9月26日閲覧。
  22. ^ Summer Code Sprint Trip Report | cesium.com”. cesium.com. 2017年9月26日閲覧。
  23. ^ [WIP PBR Materials extension by mlimper · Pull Request #643 · KhronosGroup/glTF]” (英語). GitHub. 2017年9月26日閲覧。
  24. ^ glTF 1.1 will be 2.0! · Issue #817 · KhronosGroup/glTF” (英語). GitHub. 2017年9月26日閲覧。
  25. ^ glTF – Runtime 3D Asset Delivery, The Khronos Group, (2017-09-26), https://github.com/KhronosGroup/glTF 2017年9月26日閲覧。 
  26. ^ glTF 2.0 syntax changes and JSON encoding restrictions · Issue #831 · KhronosGroup/glTF” (英語). GitHub. 2017年9月26日閲覧。
  27. ^ https://www.khronos.org/news/press/khronos-releases-gltf-2.0-specification
  28. ^ Nopper, Norbert (2017年9月9日). “#glTF 2.0 exporter is going to be shipped with Blender:https://www.youtube.com/watch?v=hJ0GpTQaShs&t=1h04m50s …” (英語). @McNopper. 2017年9月26日閲覧。
  29. ^ Cabello, Ricardo (2017年9月13日). “The new @Apple Watch website uses @glTF3D pic.twitter.com/2fOrVaiz7F” (英語). @mrdoob. 2017年9月26日閲覧。
  30. ^ “Facebook lanserar 3d-stöd. Hur gör man 3D-inlägg på Facebook?” (スウェーデン語). SoSocial.io. (2018年2月21日). http://sosocial.io/3d-inlagg-facebook/ 2018年2月22日閲覧。 
  31. ^ Richer 3D Posts on Facebook and New Ways to Share - Facebook for Developers” (英語). Facebook for Developers. 2018年2月26日閲覧。
  32. ^ LEGO” (英語). www.facebook.com. 2018年2月26日閲覧。
  33. ^ UnityGLTF: Runtime GLTF Loader for Unity3D, The Khronos Group, (2017-09-26), https://github.com/KhronosGroup/UnityGLTF 2017年9月26日閲覧。 
  34. ^ Web-based client-side preview and validation · Issue #1081 · KhronosGroup/glTF” (英語). GitHub. 2017年9月26日閲覧。
  35. ^ VR, Oculus. “June Platform Updates: 5K Video, Embedded Dash Panels, and More” (英語). https://www.oculus.com/blog/june-platform-updates-5k-video-embedded-dash-panels-and-more/ 2018年6月20日閲覧。 
  36. ^ “Oculus Discussion Forums”. Oculus. https://forums.oculusvr.com/community/discussion/66050/rift-si-release-1-27-rolling-out-to-public-test-channel 2018年6月20日閲覧。 
  37. ^ glTF roadmap - what would you like to see next in glTF? · Issue #1051 · KhronosGroup/glTF” (英語). GitHub. 2017年9月26日閲覧。
  38. ^ Comparison of OpenGEX, Collada, and glTF” (2017年8月24日). 2018年9月13日閲覧。
  39. ^ Juan Linietsky Tweets” (2018年2月10日). 2018年8月13日閲覧。
  40. ^ A small defense of glTF 2.0 on its comparison against OpenGEX” (2018年8月5日). 2018年8月5日閲覧。
  41. ^ GLB Tutorials”. Facebook Developers. 2018年5月7日閲覧。
  42. ^ https://www.khronos.org/assets/uploads/developers/library/overview/gltf-overview.pdf

外部リンク 編集