「WebGPU」の基礎と3DCG開発のはじめかた

2025年4月25日(金)
大西 武 (オオニシ タケシ)
第1回の今回は、WebGPUと3DCGの基礎知識と、開発環境の準備、JavaScriptによるプログラミングの基本について解説します。

はじめに

本連載では、図1のようなボーンアニメーションする3Dキャラクターを「レンダリング(3Dデータをもとに3D計算して2次元の画面に描画)」する解説をします。そのためWebブラウザで「WebGPU」を使います。WebGPUとはWebブラウザで動作する最新の3D技術です。今までは「WebGL」がWebブラウザの標準の3D機能でしたが、その後継の3D機能です。まだまだWebGLがなくなることはないと思いますが、それを先取りしてWebGPUで3Dプログラミングをしてみようというわけです。

WebGPUは2025年4月現在、最新のPC(Windows・macOS・Linux)やAndroid(対応していない場合もある)に搭載されているWebブラウザ「Google Chrome」のみで動作しますが、いずれはWebGLのようにほとんどのモダンなWebブラウザに搭載され、どんなパソコンやモバイル機器でもWebGPUが動作するようになると思われます。

図1:本連載で作成する3Dコンテンツの例

3DCGの基礎知識

WebGPUは3DCGをプログラミングして描くための技術です。そこで、まず3DCGについて解説します。また、3DCGを作るための3DCGツールについても合わせて解説します。

Metasequoia4について

3Dプログラミングを始める前に、まず有名な3DCGツールを使えるようになってください。ツールとしては、無料版もある「Metasequoia4」(図2)がお勧めです。これは「ポリゴンモデラー」と呼ばれる、3Dオブジェクトを作成したり編集したりといった「モデリング」を行うためのツールです。

図2:「Metasequoia4」のインターフェース

Blenderについて

Metasequoia4のほかに、無料の3DCGツールとして「Blender」(図3)もお勧めです。Blenderにはモデラーの機能だけでなく、3Dアニメーションを描く機能まで付いています。ただし、Metasequoia4と比べて慣れるまで若干時間がかかります。

図3:「Blender」のインターフェース

3DCGについて

3Dプログラミングするに当たって、3DCGの仕組みも知らずに3Dプログラミングするのはほぼ不可能ですが、3DCGは図4のように黒色のラインで囲まれた「ポリゴン(多角形)」面を無数に描画してることが分かれば何とかなります。例えば「サイコロは四角形面6個からできている」と言えば誰でも分かりますよね。それが3DCGでは、全てのオブジェクトがポリゴン面を組み合わせて描かれているわけです。

図4:ポリゴンで構成された3DCG

2DCGが塗りまたは線と塗り潰しだけでできていることは、手描きの絵に近いため何となく分かるでしょう。2DCGのように、3DCGもポリゴンという基本が大事です。また3DCGでは頂点とラインも描くことができますが、これはコンテンツを作る際にはあまり使われなく、モデラーや3Dアニメーションツールなどの3Dツールを作る際によく使われます。

さて、3DCGツールが使えるようになったら、今度は「実際にどうやって3Dプログラミングしてポリゴンを描くのか」気になりますよね。

ポリゴンは三次元座標の頂点を繋いで囲まれる多角形です。三次元頂点は移動させて、カメラを向けて、パース(遠近法)をかけた座標を3D計算して二次元のスクリーン(画面)の座標に変換します。その頂点を囲んでマテリアル色(材質)で塗り潰したものがポリゴンです。これを何千何万個と描いて1つずつのモデルを構成します。

これで全てではないですが、シンプルに言えばたったこれだけのことなのに、3DCGを小難しい計算式ばかりで紹介している記事が多く、筆者は最初まったく3Dプログラミングの仕組みが分からず理解するのに時間がかかりました。

WebGPUについて

WebGPUを語る前に、その前身であるWebGLについても解説しておきましょう。WebGLもWebGPUも、3DグラフィックスをNVIDIA社などの専用ハードウェア(ビデオカード、グラフィックボード)を使って3D計算や3D描画といったプログラミングをするためのJavaScriptのライブラリです。

WebGLはシリコングラフィックスが開発した3Dグラフィックスライブラリ「OpenGL」をラップしてWebブラウザ上で使えるようにした3D機能です。正確にはOpenGL 2のシンプル版「OpenGL ES 2」をラップしています。「WebGL 2」は「OpenGL ES 3」をラップしています。

これに対し、WebGPUはWindowsでは「DirectX12」をラップし、macOSでは「Metal」をラップし、Linuxでは「Vulkan」をラップしています。これらの3つもそれぞれ3Dグラフィックスライブラリで、OpenGLよりさらにハイクオリティで高速に3D処理を行います。

著者
大西 武 (オオニシ タケシ)
1975年香川県生まれ。大阪大学経済学部経営学科中退。プログラミング入門書など30冊以上を商業出版する作家。Microsoftで大賞やNTTドコモでグランプリなど20回以上全国区のコンテストに入賞するアーティスト。オリジナルの間違い探し「3Dクイズ」が全国放送のTVで約10回出題。
https://profile.vixar.jp

連載バックナンバー

開発言語技術解説
第1回

「WebGPU」の基礎と3DCG開発のはじめかた

2025/4/25
第1回の今回は、WebGPUと3DCGの基礎知識と、開発環境の準備、JavaScriptによるプログラミングの基本について解説します。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています