.GLTF オプション番号
glTF (GL Transmission Format) は、3D モデル情報を JSON 形式で保存する 3D ファイル形式です。 JSON を使用すると、3D アセットのサイズと、それらのアセットを解凍して使用するために必要なランタイム処理の両方が最小限に抑えられます。アプリケーションによる3Dシーンやモデルの効率的な転送と読み込みのために採用されました。 glTF は Khronos Group 3D Formats Working Group によって開発され、作成者によって 3D の JPEG とも呼ばれます。
GLTF ファイル形式は、オーサリング ワークフローを合理化し、業界全体で相互運用可能なコンテンツの使用を可能にする、3D コンテンツ ツールおよびサービス用の拡張可能な共通パブリッシング形式を定義します。 glTF ファイル形式の作成の背後にある意図は、オーサリング ワークフローを合理化し、業界全体で相互運用可能なコンテンツの使用を可能にする 3D コンテンツ ツールおよびサービス用の拡張可能な共通の公開形式を定義することでした。 WebGL やその他の API を使用するアプリケーションによる実行時の処理を最小限に抑えます。
GLTF ファイルの簡単な歴史
glTF ファイル形式 1.0 の最初の仕様は、2015 年 10 月に発表されました。これは、クロノスによって 2012 年 3 月に開始された一連の取り組みとして実現されました。これらの取り組みの目的は、WebGL トラクションに関する機会を評価することでした。その結果、JSON 形式に基づく glTF 形式の最初のデモが、2012 年の WebGl ミートアップで発表されました。この形式は、Cesium、3D Tiles、Oculus、Microsoft、Archilogic などを含むいくつかの企業によって採用されました。
glTF 2.0 は、2017 年 6 月 5 日に Web3D 2017 Conference で公開されました。その後、glTF ファイル形式を採用した企業の長いリストがあります。
GLTF ファイル形式
glTF 2.0 のファイル形式の仕様は オンライン で参照できます。 glTF ファイル形式。
glTF は、サポートする外部データを含む JSON ファイルとしてアセットを定義します。以下を使用して 3D モデルを表現します。
- JSON 形式の .glTF ファイルに含まれる完全なシーンの説明。これには、ノード階層、マテリアル、カメラに関する情報、およびメッシュ、アニメーション、その他の構造の記述子情報が含まれます。
- ジオメトリ データとアニメーション データ、およびその他のバッファベースのデータを含むバイナリ ファイル (.bin) ・テクスチャ用画像ファイル(.jpg、.png)
画像などの外部アセットは、URI を介して参照される外部ファイルに保存されます。これらの URI は、GLB コンテナーと共に格納されるか、データ URI を使用して JSON に直接埋め込まれます。有効な glTF ごとに、そのバージョンを指定する必要があります。
glTF は、小さいファイル サイズ、高速読み込み、完全な 3D シーン表現、および拡張性を実現するように設計されています。これらの独自の設計目標が、3D ドメインで glTF ファイル形式が人気を博している主な理由です。以下は、さまざまなファイル タイプの glTF ファイル形式でサポートされている MIME タイプです。
- .gltf ファイルは model/gltf+json を使用します
- .bin ファイルは application/octet-stream を使用
- テクスチャ ファイルは、特定の画像フォーマットに基づく公式の image/* タイプを使用します。最新の Web ブラウザーとの互換性のために、次の画像形式がサポートされています: image/jpeg、image/png。
JSON エンコーディング
glTF は、JSON ファイル形式に次の追加の制限を課します
クライアント側の実装を簡素化するために、glTF には JSON 形式とエンコーディングに関する追加の制限があります。
- JSON は、BOM なしの UTF-8 エンコーディングを使用する必要があります。
- この仕様で定義されているすべての文字列 (プロパティ名、列挙型) は ASCII 文字セットのみを使用し、プレーン テキストとして記述する必要があります。
- JSON オブジェクト内の名前 (キー) は一意である必要があります。つまり、キーの重複は許可されません。
URI
バッファと画像リソースは URI を介して参照されます。次の 2 つの URI タイプがクライアントでサポートされている必要があります。
データ URI: データ URI は RFC 2397 で定義されたものであり、JSON にリソースを埋め込むために glTF によって使用されます。
相対 URI パス: または、RFC 3986、セクション 4.2 で定義されている path-noscheme — スキーム、権限、またはパラメーターなし。 RFC 3986 の セクション 2.2 に従って、予約文字はパーセントでエンコードする必要があります。