この記事はWeb グラフィックス Advent Calendar 2021の18日目の記事です。
「噂の glTF PBR Next を試してみるテスト(2021年版)」についてはこちらを参照下さい。
はじめに
みなさんは Khronos の glTF というフォーマットについてご存じでしょうか?
glTF は GL Transmission Format の略でランタイム用途の 3D アセットの標準仕様を狙った比較的新しいフォーマットです。今年 2022年、国際標準規格 ISO/IEC 12113 としてリリースされました。
glTF の歴史について
少し glTF の歴史について振り返ってみたいと思います。
登場した年 | バージョン | 主な内容 |
---|---|---|
2015年 | glTF 1.0 | glTF 1.0 発表。主に WebGL 向けとして誕生。 |
2017年 | glTF 2.0 | glTF 2.0 発表。実行環境に依存する仕様(GLSL)を廃止。PBRマテリアルを採用。 |
2018年 | glTF 2.0 | Draco圧縮 拡張が発表。 |
2020年 | glTF 2.0 | PBR 拡張機能の開発成果(PBR Next フェーズ1)として Clearcoat / Transmission / Sheen 拡張が発表。 |
2020年 | glTF 2.0 | Variant 拡張が発表。 |
2021年 | glTF 2.0 | PBR 拡張機能の開発成果(PBR Next フェーズ2)として IOR / Volume / Specular 拡張が発表。 |
2021年 | glTF 2.0 | KTX 2.0 Universal Textures 拡張が発表。 |
2021年 | glTF 2.0 | XMP Metadata 拡張が発表。 |
2022年 | glTF 2.0 | PBR 拡張機能の開発成果(PBR Next フェーズ3)として Emissive Strength / Iridescence 拡張が発表。 |
2022年 | glTF 2.0 | glTF 2.0 の規格が国際標準規格 ISO/IEC 12113 としてリリース。 |
PBR Next とは?
PBR Next は glTF 2.0 以降に提案されている新しいマテリアル仕様の総称です。
https://github.com/KhronosGroup/glTF/milestone/2
拡張名 | 拡張機能の概要 |
---|---|
KHR_materials_emissive_strength | emissiveFactor および emissiveTexture を [0.0,1.0] の範囲を超えて設定できるようにします。 |
KHR_materials_iridescence | シャボン玉、油膜、昆虫の羽などによく見られる相互反射や干渉を可能にする薄い半透明な層を追加します。 |
Emissive Strength 拡張の例
Babylon.js + EmissiveStrengthTest.gltf result:
Iridescence 拡張の例
Babylon.js + IridescenceMetallicSpheres.gltf result:
次に来る拡張は?
現在、下記の拡張が仕様策定中です。これらは上記 PBR Next と組み合わせて使えることを目標としています。
https://github.com/KhronosGroup/glTF/tree/main/extensions#in-progress-khronos-and-multi-vendor-extensions-for-gltf-20
おわりに
上記のサンプルは、私が趣味で日々更新している gltf-test からの抜粋になります。
glTF をサポートするライブラリも増えています。自分にあったライブラリを探してみるのも良いのではないでしょうか。
参考情報
■ glTF Overview(glTF に関する資料はここにまとまっています)
https://www.khronos.org/gltf/
■ glTFミートアップ - glTFのご紹介
https://www.khronos.org/developers/linkto/gltf-gltf-meetup-japan
■ SIGGRAPH 2022 / 3D Formats and glTF: Wat's new in 2022
https://www.khronos.org/assets/uploads/developers/presentations/3D_Formats_and_glTF_-_Whats_new_in_2022.pdf
■ gltf-test (ライブラリ毎の glTF モデルのテストを行っているリポジトリです)
https://github.com/cx20/gltf-test
■ glTF Extension Registry(glTF 拡張の一覧が記載されています)
https://github.com/KhronosGroup/glTF/tree/main/extensions
■ 噂の glTF PBR Next を試してみるテスト(2021年版)
https://qiita.com/cx20/items/b9c77ba65b4bc45903da
■ 噂の glTF PBR Next を試してみるテスト(2020年版)
https://qiita.com/cx20/items/abe100be05a677e51936