CGの最前線 — リアルタイムレイトレとニューラルレンダリング

映画だけのものだったレイトレーシングがゲームで動き、シーンが三角形ではなくニューラルネットの重みや数百万個のガウスで表されるようになった。この10年でCGの教科書に書き加えられた新しい章 — その仕組みを、正確に、動かして眺めます。

1. リアルタイムレイトレーシング — ハイブリッドの時代

レッスン9〜10で見たとおり、光の物理に忠実なのはレイトレーシング/パストレーシングですが、1画素に多数のレイが必要で、長らくオフライン(映画)専用でした。一方ラスタライズ(レッスン5)は爆速ですが、影も映り込みも「いま画面に描いているもの」しか参照できず、シャドウマップなどの近似トリックを積み重ねてきました。

転機は2018年。レイとBVH・三角形の交差判定を固定機能化したRTコアを積むGPUと、それを叩くAPI(DXR等)が登場し、リアルタイムでレイが飛ばせるようになりました。ただし現在の主流は全面置き換えではなく、下地はラスタライズで速く描き、影・反射・大域照明などレイが得意な効果にだけレイを使うハイブリッドです。全画素をパストレーシングする「パストレモード」を備えるゲームも現れましたが、最上位GPUと次節のデノイザ・アップスケーラの支えが前提です。

同じシーンをラスタライズ/ハイブリッドで — 効果を1つずつ足す
左=ラスタライズ相当(影は硬く、床に映り込みなし)。右はボタンで効果を追加できます。影レイを足すと面光源による柔らかい影(半影)が、反射レイを足すと床への映り込みが現れる。下のバーは追加コストのイメージ(模式値)— 効果ごとに「レイを飛ばすか・近似で済ますか」を選ぶのがハイブリッドです。

2. ノイズとの戦い — デノイザ

リアルタイムの予算では1画素あたり1〜2本しかレイを飛ばせません。モンテカルロ法の誤差はサンプル数Nに対して 1/√N でしか減らない(レッスン10)ので、生の画像はザラザラです。そこで法線・アルベド・深度などのGバッファを手がかりに、物体の境界をまたがないようにノイズをならすデノイザが必須部品になりました。SVGF系の時空間フィルタに始まり、近年はニューラルネットによるAIデノイザが主流になりつつあります。

σ誤差 ∝ 1 / √N レイを4倍飛ばしてもノイズは半分にしかならない。だから「レイを増やす」より「賢くならす」が現実解になった
1画素1レイのザラザラをどう救うか — 単純ぼかし vs エッジ保存
左=少ないレイの生画像(▶で蓄積すると 1/√N のペースでゆっくり滑らかになる)。中央=単純にぼかすと輪郭まで溶ける。右=Gバッファ(法線・アルベド)を手がかりに境界を守りながらならす。「誤差」は64サンプルの参照画像とのズレです。
POINT — 現代のリアルタイムレイトレは三点セット 「少ないレイ × デノイザ × ニューラルアップスケーリング」の合わせ技で成立している。低解像度・少サンプルで物理計算し、AIで滑らかな高解像度に仕上げる — 物理と学習の分業が今日の標準構成だ。

3. ニューラルレンダリング — NeRF

2020年の NeRF(Neural Radiance Fields)は発想を根本から変えました。シーンを三角形メッシュやテクスチャではなく、ニューラルネットワークの重みとして持つのです。空間の座標と視線方向を入力すると、その点の「色」と「密度」が返る関数をMLPで表し、カメラからのレイに沿って下の式で合成すると画素の色になります。

C ≈ Σi Ti (1 − e−σiδi) ci , Ti = exp(−Σj<i σjδj) ボリュームレンダリング積分の離散化。σ=密度、c=色、δ=サンプル間隔、T=手前までの透過率

この式は微分可能なので、「レンダリング結果と実写写真の差」を勾配としてネットワークに逆伝播できます。数十枚の写真を撮るだけで、撮っていない視点の画像まで合成できる — これが新視点合成(novel view synthesis)です。初期のNeRFは1枚の描画に数十秒かかりましたが、Instant-NGP(ハッシュグリッド特徴量)などの改良で秒単位〜対話的な速度まで縮みました。

NeRFのしくみ — 空間の点をネットワークに問い合わせる(2D断面版)
左=シーンを真上から見た図。カメラからのレイに沿って点を取り、1点ごとにMLPへ問い合わせて色と密度をもらい、上の式で合成する。下の帯がこの視点の「写真」。スライダーで一周してみてください — どこにも三角形メッシュは存在しないのに、視点に応じた像ができます。

4. 3Dガウシアンスプラッティング(3DGS)

2023年の 3D Gaussian Splatting は、「場への問い合わせ」をやめ、シーンを数十万〜数百万個の、色と不透明度を持つ3Dガウス(ぼやけた楕円体)の集合として明示的に持ちます。描画は各ガウスを画面に投影し、奥から手前へαブレンドするだけ — 実質ラスタライズなので、学習済みシーンをリアルタイムで見回せます。学習はNeRFと同じく微分可能レンダリングで、写真との差を各ガウスの位置・形・色・不透明度に逆伝播し、足りない場所ではガウスを分裂・追加していきます。

だ円の群れが絵になる — ガウスの数と表現力
だ円1つ=1個のガウス。少ないうちはぼんやりした色の塊ですが、増やすほど木の形がはっきりします。再生中は視点が回り、奥から手前への合成順が視点ごとに並べ替えられていることに注目。実際のシステムはこれを数十万〜数百万個、写真から勾配降下で学習します。
俗説注意 — 「3DGSがNeRFを過去のものにした」わけではない 3DGSは描画が速く品質も高いが、ガウス数百万個ぶんのメモリを食い、鏡面反射・半透明・細かい網目のような表現には課題が残る。NeRF系(とその発展)は連続的な場ゆえの滑らかさや圧縮率に強みがあり、両系統とも現在進行形で改良が続く研究分野だ。「どちらが優れるか」は用途とデータ次第であり、断定的な優劣づけは最前線の実態に合わない。

5. まとめ — このコースの終わりに

一歩先へ — 「物理で解く」と「データから学ぶ」の融合期 AIデノイザ、ニューラルアップスケーリングとフレーム生成、拡散モデルによる素材・シーン生成、そして動画生成モデルを「学習された世界のレンダラ」と見る研究まで — レンダリング方程式を解く物理側と、写真・映像から学ぶデータ側が急速に混ざりつつある。どれも発展途上で結論は出ていない。10年前の教科書になかった章が、いままさに書き加えられている最中だ。