Web3D ( 3D Webとも呼ばれる)は、 3Dコンピュータグラフィックスを用いてウェブサイトを表示・操作するための技術群です。これらの技術により、オンラインゲーム、仮想現実体験、インタラクティブな製品デモンストレーション、3Dデータ可視化といったアプリケーションをウェブブラウザ内で直接実現することが可能になります。
Web3Dの登場は1994年に遡り、ワールドワイドウェブ上で3Dグラフィックデータを保存・表示するために設計されたファイル形式であるVRMLの登場に始まります。現代のWeb3Dは主にWebGLによって支えられており、これはプラグインを必要とせずにWebブラウザでハードウェアアクセラレーションによる3Dグラフィックレンダリングを可能にするJavaScript APIです。
Web3D の出現は 1994 年に遡り、ワールド ワイド ウェブ上で 3D グラフィック データを保存および表示するために設計されたファイル フォーマットであるVRMLの登場とともに始まった。[ 1 ] 1995 年 10 月、インターネット ワールドで、Template Graphics Software はNetscape CommunicationsのNetscape 2.0のベータ リリース用の 3D/VRML プラグインをデモンストレーションした。[ 2 ]
Web3Dコンソーシアムは、フォーマットの共同開発を促進するために設立されました。VRMLとその後継であるX3Dは、国際標準化機構と国際電気標準会議によって国際標準として承認されています。[ 3 ]
この技術の主な欠点は、3Dレンダリングを実行するためにサードパーティ製のブラウザプラグインを使用する必要があったことであり、これが標準規格の普及を遅らせる要因となった。
2000年から2010年の間に、これらのプラグインの1つであるAdobe Flash Playerがデスクトップコンピュータに広くインストールされ、インタラクティブなウェブページやオンラインゲームの表示、ビデオやオーディオコンテンツの再生に使用されました。[ 4 ]ソフトウェアレンダリングとActionScript 3を使用して変換、照明、テクスチャリングなどの3D計算を実行するFlashベースのフレームワークがいくつか登場しました。その中でも最も注目すべきはPapervision3DとAway3Dです。
最終的に、Adobe は、Flash Player および AIR 製品向けに GPU アクセラレーションを使用してインタラクティブ 3D グラフィックスをレンダリングするためのAPIであるStage3D を開発しました[ 5 ]。これはソフトウェアベンダーに採用されました[ 6 ] [ 7 ] 。
2009年、 GoogleはO3Dと呼ばれるオープンソースの3Dウェブ技術を発表しました。これもブラウザプラグインが必要でしたが、Flash/Stage3Dとは異なり、JavaScript APIに基づいていました。O3Dはゲームだけでなく、広告、3Dモデルビューア、製品デモ、シミュレーション、エンジニアリングアプリケーション、制御および監視システムにも適していました。[ 8 ]
WebGL (「Web Graphics Library」の略)は、Mozilla FoundationのVladimir Vukićevićが始めたCanvas 3Dの実験から発展したものです。Vukićevićは2006年にCanvas 3Dのプロトタイプを初めて公開しました。2007年末までに、Mozilla [ 9 ]とOpera [ 10 ]はそれぞれ独自の実装を作成しました。
2009年初頭、非営利技術コンソーシアムであるKhronos Groupが、Apple、Google、Mozilla、Operaなどの初期参加を得てWebGLワーキンググループを立ち上げた。[ 11 ] WebGL仕様のバージョン1.0は2011年3月にリリースされた。[ 12 ]
新技術の主な利点としては、Web標準への準拠と、ブラウザプラグインを使用せずにネイティブに近い3Dパフォーマンスを実現できることが挙げられます。[ 13 ] WebGLはOpenGL ESに基づいているため、追加の抽象化レイヤーなしでモバイルデバイス上で動作します。他のプラットフォームでは、WebGLの実装はANGLEを利用してOpenGL ES呼び出しをDirectX、OpenGL、またはVulkan API呼び出しに変換します。[ 14 ]
注目すべき WebGL フレームワークには、仮想現実体験を構築するためにHTMLベースのマークアップを使用するA-Frame [ 15 ]、ブラウザ ゲームを構築するための独自のクラウド ホスト型作成プラットフォームとオープンソース エンジンであるPlayCanvas [ 16 ]、2000 年代初頭からデモシーンの作成に使用されてきたMITライセンスのフレームワーク Three.js [ 17 ]、バージョン 5 で WebGL バックエンドを獲得したUnity [ 18 ] 、 Blender、3ds Max、Mayaと統合して3D Web コンテンツを作成するVerge3D [ 19 ]などがあります。
WebGL の急速な普及に伴い、Web 用に最適化された 3D ファイル フォーマットがないという新たな問題が発生しました。この問題は、 COLLADAワーキング グループのメンバーによって 2012 年に考案されたフォーマットであるglTFによって解決されました。[ 20 ] SIGGRAPH 2012で、Khronos は、当時 WebGL Transmissions Format (WebGL TF) と呼ばれていた glTF のデモを発表しました。2015 年 10 月 19 日に、glTF 1.0 仕様がリリースされました。[ 21 ]バージョン 2.0 glTF は、フラウンホーファーが提案した物理ベースのレンダリングマテリアル モデルを使用しています。 [ 22 ]その他のアップグレードには、顔アニメーションなどのテクニック用のスパース アクセサとモーフ ターゲット、および、より高速なインデックス ベースのアクセスを実現するためにトップレベルの glTF オブジェクト プロパティを配列に置き換えるなど、コーナー ケースやパフォーマンスのためのスキーマの調整と破壊的変更が含まれます。[ 23 ]
WebGPUは、レンダリングと計算のためにGPUハードウェア機能をWebに公開するW3C APIです。[ 24 ]最新のネイティブGPU APIに効率的にマッピングするように設計されており、シェーダーにはWebGPUシェーディング言語(WGSL)を使用します。[ 25 ]