X3D(Extensible 3D )は、 3Dコンピュータグラフィックスを宣言的に表現するための、ロイヤリティフリーのISO/IEC規格群です。X3Dには、複数のグラフィックスファイル形式、プログラミング言語API定義、およびインタラクティブなネットワーク対応3Dデータの配信と統合のためのランタイム仕様が含まれています。X3Dバージョン4.0はWeb3Dコンソーシアムによって承認され、改訂版国際規格(IS)としてISO/IECによる最終審査を受けています。
X3Dは、Webアーキテクチャを採用することで、多様なデバイス間での動作を実現するように設計されています。X3Dは、基本的なアセット交換やCAD交換から、インタラクティブ、MPEG-4インタラクティブ、医療、イマーシブ、フルプロファイルまで、プロファイルを通じて幅広い3D機能を提供します。また、ヒューマノイドアニメーション(HAnim)の身体構造と動作についても、解剖学的に詳細なサポートを提供しています。X3Dの「X」は拡張性を意味し、ベンダー独自の機能や研究コンポーネントを標準機能に追加できます。
X3Dファイル形式サポートには、XML、ClassicVRML、圧縮バイナリエンコーディング (CBE)、およびドラフトJSONエンコーディングが含まれます。セマンティック WebサポートもTurtleエンコーディングによって実証されています。X3D は 2001 年に仮想現実モデリング言語(VRML)の後継となりました。[ 1 ] X3D は、 VRML への複数の拡張機能( CAD、地理空間、ヒューマノイド アニメーション、NURBSなど)、シーンを XML構文やOpen Inventorのような VRML97 構文、バイナリ圧縮を使用してエンコードする機能、 ECMAScript、Java、Pythonなどのプログラミング言語を含む厳密に型付けされたAPI を提供します。
X3Dレンダリングは、従来のレンダリング方式(例:Blinn-Phong)と、glTF 2.0の機能に対応した最新の物理ベースレンダリング(PBR)方式の両方に対応しています。また、3つのプラットフォーム固有のシェーダー言語を使用したカスタムシェーダーの利用も定義されています。制作者は、様々な画像フォーマットや動画フォーマットを含む豊富なマルチメディア機能を利用できます。完全空間化された音声レンダリングは、W3C Web Audio APIの機能に加え、MIDI 2.0やその他の音声フォーマットでデジタル化された音声入力にも対応しています。
X3Dのすべてのファイルエンコーディングとプログラミング言語APIは、X3Dアーキテクチャ標準の機能定義に準拠し、同等の表現力を持っています。そのため、X3DはXML、ドキュメントオブジェクトモデル(DOM)、XPathなどのオープン標準と連携できます。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 4.0//EN" "http://www.web3d.org/specifications/x3d-4.0.dtd"><X3D profile= "Interchange" version= "4.0" xmlns:xsd= "http://www.w3.org/2001/XMLSchema-instance" xsd:noNamespaceSchemaLocation= "http://www.web3d.org/specifications/x3d-4.0.xsd" > <Scene> <Shape DEF= "MyTriangle" > <IndexedFaceSet coordIndex= "0 1 2" > <Coordinate point= "0 0 0 1 0 0 0.5 1 0" /> </IndexedFaceSet> </Shape> </Scene> </X3D>VRML表現は、バージョン番号が最新のX3D標準()を反映するように変更されている点を除いて、VRML§ 例と同じです#X3D V4.0 utf8。識別用のDEF名もノード識別子(id)として適用されます。
JSONおよびバイナリ形式については、ツールの一覧についてはWeb3Dを参照してください。[ 2 ]
X3D ファイルをネイティブに解析および解釈するアプリケーションはいくつかあり、そのほとんどはオープンソース ソフトウェアです[ 3 ] 。これには、3D グラフィックスおよびアニメーション エディタのBlender [ 4 ]や、Sun Microsystems の仮想世界クライアントProject Wonderland [ 5 ]が含まれます。X3Dアプレットは、Web ブラウザー内で実行され、コンテンツを 3D で表示するソフトウェア プログラムです。OpenGL 3D グラフィックス テクノロジーを使用して、複数の異なるブラウザー (IE、Safari、Firefox) で、複数の異なるオペレーティングシステム (Windows、Mac OS X、Linux) に X3D コンテンツを表示します[ 6 ]。しかし、X3D は、他のより有名なソフトウェア アプリケーションほど広く受け入れられていません。
2000 年代には、Bitmanagement などの多くの企業が X3D の仮想エフェクトの品質レベルをDirectX 9.0c の品質レベルまで向上させましたが、その代償として独自のソリューションを使用しました。ゲーム モデリングを含むすべての主要機能は既に完成しています。これらには、Z バッファ、BlendOp、AlphaOp、ステンシル[ 7 ]の低レベル設定によるマルチ パス レンダー、[ 8 ] HLSL および GLSL をサポートするシェーダー、[ 9 ] リアルタイム Render To Texture、マルチ レンダー ターゲット (MRT)、およびポスト プロセッシング [ 10 ] が含まれます。多くのデモでは、X3D が既にライトマップ、ノーマル マッピング、SSAO、CSM、および他の仮想エフェクトとともにリアルタイム環境反射をサポートしていることが示されています。[ 11 ]
X3DはWebの3D標準となることを目指しており、MathMLやSVGなどの他のXML標準と同様にHTML5ページに統合されるように設計されています。X3DOMは提案されている構文モデルであり、 WebGLとJavaScriptのみを使用してブラウザプラグインなしでこの統合を実現する方法を示すスクリプトライブラリとして実装されています[ 12 ] 。 [ 13 ]
X3Dは、X3D Core、X3D Interchange、X3D Interactive、X3D CADInterchange、X3D Immersive、X3D Fullなど、さまざまな機能レベルに対応する複数のプロファイル(コンポーネントセット)を定義しています。ブラウザメーカーは、Web3Dコンソーシアムによる標準化申請を行う前に、独自のコンポーネント拡張機能を定義することができます。その後、 ISO / IECによる正式な審査と承認が行われます。
Web3Dコンソーシアムとワールドワイドウェブコンソーシアム(W3C)、オープンジオスペーシャルコンソーシアム(OGC)、デジタルイメージングおよび医療通信(DICOM)、クロノスグループの間にも、連絡および協力協定が締結されている。
X3D のサブセットとして、MPEG-4 Part 11で定義されているXMTのバリアントである XMT-A があります。これは、X3D と MPEG-4 (BIFS) の 3D コンテンツ間のリンクを提供するように設計されました。[ 14 ]
X3D の抽象仕様 (ISO/IEC 19775) は、2004 年に ISO によって初めて承認されました。X3D の XML および ClassicVRML エンコーディング (ISO/IEC 19776) は、2005 年に初めて承認されました。[ 15 ]