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構文やVRML97のOpen Inventorのような構文を使用してシーンをエンコードする機能、またはバイナリ圧縮を提供し、 ECMAScript、Java、Pythonなどのプログラミング言語を含む厳密に型指定されたAPIを備えています。
X3Dレンダリングには、glTF 2.0の機能に対応する、従来の( Blinn-Phongなど)手法と最新の物理ベースレンダリング(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プロファイル= "Interchange"バージョン= "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表現はVRML § 例と同じですが、バージョン番号が最新のX3D標準(#X3D V4.0 utf8)に合わせて変更されています。また、ノード識別子(id)として、識別用のDEF名も適用されます。
JSONおよびバイナリ形式については、Web3Dのツールリストを参照してください。[2]
X3Dファイルをネイティブに解析・解釈するアプリケーションは数多く存在し、その多くはオープンソースソフトウェアです。[3]例としては、3Dグラフィックス・アニメーションエディタのBlender [4]や、サン・マイクロシステムズの仮想世界クライアントProject Wonderland [5]などがあります。X3Dアプレットは、Webブラウザ内で動作し、コンテンツを3Dで表示するソフトウェアプログラムです。OpenGL 3Dグラフィックス技術を用いて、X3Dコンテンツを様々なブラウザ(IE、Safari、Firefox)や様々なオペレーティングシステム(Windows、Mac OS X、Linux)で表示します。 [6]しかし、X3Dは他の著名なソフトウェアアプリケーションほど広く受け入れられていません。
2000年代には、Bitmanagementなど多くの企業が、X3Dの仮想効果の品質レベルをDirectX 9.0cの品質レベルまで向上させましたが、独自のソリューションを使用するという犠牲を払いました。ゲームモデリングを含むすべての主要な機能は既に完了しています。これには、Zバッファの低レベル設定によるマルチパスレンダリング、BlendOp、AlphaOp、ステンシル、[7]マルチテクスチャ、[8] HLSLとGLSLをサポートするシェーダ、[9]リアルタイムのテクスチャレンダリング、マルチレンダーターゲット(MRT)、およびポストプロセスが含まれます。[10]多くのデモは、X3Dがライトマップ、法線マッピング、SSAO、CSM、リアルタイム環境反射、その他の仮想効果を既にサポートしていることを示しています。[11]
X3DはWebの3D標準を目指しており、MathMLやSVGなどの他のXML標準と同様にHTML5ページに統合されるように設計されています。X3DOMは提案された構文モデルであり、スクリプトライブラリ[12]として実装されており、ブラウザプラグインを使用せずにWebGLとJavaScriptのみを使用してこの統合を実現する方法を示しています。[13]
X3Dは、X3D Core、X3D Interchange、X3D Interactive、X3D CADInterchange、X3D Immersive、X3D Fullなど、様々な機能レベルに対応した複数のプロファイル(コンポーネントセット)を定義しています。ブラウザメーカーは、Web3Dコンソーシアムに標準化を申請する前に、独自のコンポーネント拡張を定義することができます。その後、 ISO / IECによる正式な審査と承認が行われます。
Web3D コンソーシアムとワールド ワイド ウェブ コンソーシアム(W3C)、オープン ジオスペース コンソーシアム(OGC)、デジタル画像および医療通信(DICOM)、およびクロノス グループの間でも連絡および協力協定が締結されています。
X3Dのサブセットの一つであるXMT-Aは、 MPEG-4 Part 11で定義されているXMTの派生形式です。X3DとMPEG-4(BIFS)の3Dコンテンツ間のリンクを提供するために設計されました。[14]
X3Dの抽象仕様(ISO/IEC 19775)は2004年にISOによって初めて承認されました。X3DのXMLおよびClassicVRMLエンコーディング(ISO/IEC 19776)は2005年に初めて承認されました。[15]