CGの最前線 — リアルタイムレイトレとニューラルレンダリング
映画だけのものだったレイトレーシングがゲームで動き、シーンが三角形ではなくニューラルネットの重みや数百万個のガウスで表されるようになった。この10年でCGの教科書に書き加えられた新しい章 — その仕組みを、正確に、動かして眺めます。
1. リアルタイムレイトレーシング — ハイブリッドの時代
レッスン9〜10で見たとおり、光の物理に忠実なのはレイトレーシング/パストレーシングですが、1画素に多数のレイが必要で、長らくオフライン(映画)専用でした。一方ラスタライズ(レッスン5)は爆速ですが、影も映り込みも「いま画面に描いているもの」しか参照できず、シャドウマップなどの近似トリックを積み重ねてきました。
転機は2018年。レイとBVH・三角形の交差判定を固定機能化したRTコアを積むGPUと、それを叩くAPI(DXR等)が登場し、リアルタイムでレイが飛ばせるようになりました。ただし現在の主流は全面置き換えではなく、下地はラスタライズで速く描き、影・反射・大域照明などレイが得意な効果にだけレイを使うハイブリッドです。全画素をパストレーシングする「パストレモード」を備えるゲームも現れましたが、最上位GPUと次節のデノイザ・アップスケーラの支えが前提です。
2. ノイズとの戦い — デノイザ
リアルタイムの予算では1画素あたり1〜2本しかレイを飛ばせません。モンテカルロ法の誤差はサンプル数Nに対して 1/√N でしか減らない(レッスン10)ので、生の画像はザラザラです。そこで法線・アルベド・深度などのGバッファを手がかりに、物体の境界をまたがないようにノイズをならすデノイザが必須部品になりました。SVGF系の時空間フィルタに始まり、近年はニューラルネットによるAIデノイザが主流になりつつあります。
3. ニューラルレンダリング — NeRF
2020年の NeRF(Neural Radiance Fields)は発想を根本から変えました。シーンを三角形メッシュやテクスチャではなく、ニューラルネットワークの重みとして持つのです。空間の座標と視線方向を入力すると、その点の「色」と「密度」が返る関数をMLPで表し、カメラからのレイに沿って下の式で合成すると画素の色になります。
この式は微分可能なので、「レンダリング結果と実写写真の差」を勾配としてネットワークに逆伝播できます。数十枚の写真を撮るだけで、撮っていない視点の画像まで合成できる — これが新視点合成(novel view synthesis)です。初期のNeRFは1枚の描画に数十秒かかりましたが、Instant-NGP(ハッシュグリッド特徴量)などの改良で秒単位〜対話的な速度まで縮みました。
4. 3Dガウシアンスプラッティング(3DGS)
2023年の 3D Gaussian Splatting は、「場への問い合わせ」をやめ、シーンを数十万〜数百万個の、色と不透明度を持つ3Dガウス(ぼやけた楕円体)の集合として明示的に持ちます。描画は各ガウスを画面に投影し、奥から手前へαブレンドするだけ — 実質ラスタライズなので、学習済みシーンをリアルタイムで見回せます。学習はNeRFと同じく微分可能レンダリングで、写真との差を各ガウスの位置・形・色・不透明度に逆伝播し、足りない場所ではガウスを分裂・追加していきます。
5. まとめ — このコースの終わりに
- ハイブリッドレンダリング:ラスタライズの速さを土台に、影・反射などレイが得意な効果にだけレイを飛ばす。専用ハード(RTコア)が交差判定を支える。
- デノイザ:誤差∝1/√N の壁を「賢くならす」ことで回避。Gバッファを手がかりに境界を守るのが鍵。
- NeRF:シーン=ネットワークの重み。微分可能なボリュームレンダリングで写真から場を学習する。
- 3DGS:シーン=ガウスの集合。投影とαブレンドで描けるため学習結果をリアルタイム表示できる。