X3D の構造
X3D というと XML 形式の3次元データ規格と言うイメージが強いが、 VRML 型のデータ形式もサポートしている。 web3d.orgのページに詳しい仕様は書いてある。 しかし、関連する XML 技術を利用していくことを考えると、 XML 形式で記述する方が応用範囲が広いだろう。 そこでまずはデータを記述する立場から XML 形式の X3D を書くための 情報を整理しよう。
上記と同じweb3d.org のページ に XML 形式でのサンプルが紹介されている。 X3D の特徴は 3D データの記述だけでなく、スクリプティング、ネットワーク、 物理シミュレーションまでもサポートしていることである。もちろんビューワ側で 全てをサポートしているわけではないが、規格段階で考慮されていることは 期待できる。 ツールなどを作成する場合にDTDを確認したければ Web3D Consortium - X3D Specificationsを見ればよい。 サンプルのファイルをのぞいてみれば ルートノードは X3D でその下にメタデータを記述するためのヘッダ head と シーングラフを記述するための Scene ノードがあるのがわかる。 Scene ノードの下はほぼ Java3D のシーングラフを作成するのと同じように 記述することができる。 ルートノード X3D の profile 属性には X3D の機能のサブセットを 指定して、開発者に知らせることができる。つまり、ビューワによって サポートしているサブセットのレベルが異なるので、X3D は サポートの範囲内で記述することが求められる。 現在の基本の profile には Interchange Interactive Immersive Full の4つがある。それぞれがどのレベルまでサポートしてるかは Web3D Consortium - X3D Overviewで確認できる。 さすがに Full まで対応しているツールはなさそうであるが。 NURBS まで対応していたらすごいなあ。 ちなみに japan.internet.com の記事によると、2004年8月にISO(国際標準化機構) に承認された。標準規格になると期待していいのかな?