💎

『Ray Tracing Gems』— リアルタイムレイトレの実践知が詰まった一冊

に公開

『Ray Tracing Gems』— リアルタイムレイトレの実践知が詰まった一冊

サマリー

この本を一言で言うと: リアルタイムレイトレーシングの「理論は知っている、だが実装でつまずく」を全32章で解決する実践レシピ集。

項目 内容
著者 Eric Haines, Tomas Akenine-Moller 編 / NVIDIA・EA・Epicほか多数の執筆陣
対象 レイトレーシングをリアルタイムに載せたいグラフィックスエンジニア
読後に得られるもの DXRパイプラインの設計判断、デノイジング戦略、ハイブリッドレンダリングの引き出し
読了目安 通読30時間 / リファレンス利用なら必要章のみ

本書は2019年にNVIDIA主導で刊行された、全622ページ・32章からなるレイトレーシング実践書だ。CC BY-NC-ND 4.0でオープンアクセス公開されており、誰でも無料で読める。「GPU Gems」シリーズの精神を受け継ぎ、リアルタイムレイトレーシングに関わる第一線のエンジニアたちが、それぞれの専門領域で蓄積した「勘所」を惜しみなく公開している。


この本が面白い5つの理由

  1. 浮動小数点の罠を正面から扱う — レイトレーシングの数学は美しい。だが有限精度の浮動小数点演算がその美しさを容赦なく破壊する。自己交差(シャドウアクネ)の回避法を第6章で徹底解説する実直さが本書の姿勢を象徴している
  2. DXRパイプラインの全シェーダステージを図解で解剖 — Ray Generation、Intersection、Any-Hit、Closest-Hit、Missの5つのシェーダステージが、どう連携してBVHを走査するかを第3章で明快に示す
  3. デノイジングが「おまけ」ではなく主役 — ピクセルあたり1本のレイで実用品質を得るには、サンプリング戦略とデノイジングの組み合わせが不可欠。Part IV〜Vでこの両輪を体系的にカバーしている
  4. Frostbite・UE4・PICA PICAの実装が読める — EAのFrostbiteエンジンによるGIプレビュー(第23章)、Epic GamesのUE4シネマティックレンダリング(第19章)、SEEDのPICA PICAデモ(第25章)。商用エンジンの内部設計をここまで公開した書籍は稀有だ
  5. 「レイをどう飛ばすか」という根源的な問い — 第15章のMatt Pharrによるサンプリング論は、モンテカルロ積分の基礎からレイトレーシングへの応用まで一気に橋渡しする。レイ1本1本の「値段」を意識させられる

深掘り

1. 浮動小数点の罠を正面から扱う

レイトレーシングでは、サーフェス上のヒット点から次のレイを飛ばす。理論上、ヒット点はサーフェス上にあるから自分自身とは交差しない。だが浮動小数点の精度限界により、計算されたヒット点がサーフェスの「裏側」にわずかにめり込むことがある。これがシャドウアクネ(shadow acne)と呼ばれるアーティファクトだ。

「この問題を回避するための最も広く普及した解決策は、さまざまな一般的なプロダクションコンテンツを扱うには十分にロバストではなく、シーンごとに手動でパラメータを調整する必要すらある場合がある」(第6章)

第6章の著者Carsten WachterとNikolaus Binder(ともにNVIDIA)は、ヒット点の再計算とサーフェス法線方向へのオフセットを組み合わせた手法を提案する。パラメータ調整不要で、リアルタイムにもオフラインにも適用できる。「壊れるケースから設計を始める」というエンジニアリングの基本姿勢がここにある。

これが使える場面: 自作レイトレーサーでシャドウに不自然な斑点が出るとき、まず第6章の手法を実装すべき


2. DXRパイプラインの全シェーダステージを図解で解剖

DirectX Raytracing(DXR)は、従来のラスタライゼーションパイプラインに「第二の可視性アルゴリズム」としてレイトレーシングを追加したものだ。第3章はこのDXRの全体像をコンパクトにまとめている。

DXRには5つのシェーダステージがある:

  • Ray Generation Shader — パイプラインの起点。どのレイを飛ばすかを決める
  • Intersection Shader — BVHリーフノードで実際のレイ/プリミティブ交差を計算する
  • Any-Hit Shader — 交差が検出されるたびに呼ばれ、アルファマスクなどで交差を棄却できる
  • Closest-Hit Shader — レイに沿った最も近い交差で実行。ラスタライゼーションのピクセルシェーダに相当
  • Miss Shader — レイがすべてのジオメトリを外した場合に実行。環境マップのルックアップなど

DXRシェーダステージの関係

この5ステージの理解は、DXRプログラミングの出発点だ。TraceRay()を呼ぶたびにBVHトラバーサルが走り、リーフでIntersection → Any-Hit → トラバーサル完了後にClosest-HitまたはMissという流れになる。

これが使える場面: DXRを初めて触るとき、まず第3章を読んでからサンプルコードに進むと理解が圧倒的に速い


3. デノイジングが「おまけ」ではなく主役

リアルタイムレイトレーシングでは、1ピクセルにつきトレースできるレイの本数が限られる。1本や数本のレイでは当然ノイズだらけの画像になる。そこでデノイジング(ノイズ除去)が必須になる。

本書のPart V「デノイジングとフィルタリング」は4章にわたってこの課題に取り組む。特に第19章(UE4のシネマティックレンダリング)では、効果ごとに異なるデノイジング戦略を採用している:

  • ソフトシャドウ: エリアライトに向けて1本のシャドウレイ → カスタムデノイジングフィルタ
  • 光沢反射: BRDFの重要度サンプリングでレイ方向を選定 → 専用デノイジング
  • AO/GI: ワールドスペースの空間カーネルで、ヒット距離に応じてフィルタサイズを適応

デノイジングのフロー

つまり「万能デノイザー」は存在せず、各ライティング効果の物理的性質に合わせたフィルタ設計が必要だということだ。

これが使える場面: レイトレースによるソフトシャドウやGIを製品品質にするとき、サンプリングとデノイジングをセットで設計する発想が得られる


4. Frostbite・UE4・PICA PICAの実装が読める

第23章のFrostbite GIプレビューシステムは、ライトマップのベイク待ち時間を「数分〜数時間」から「数秒でプレビュー可能」に短縮する。DXRベースのモンテカルロパストレーシングで、テクセル単位の並列処理とビュー優先度付けを組み合わせている。Star Wars Battlefront 2やPlants vs. Zombies Garden Warfare 2といった実タイトルでの検証結果まで含まれている。

第25章のPICA PICAデモ(EA SEED)は、透過・AO・一次シャドウ・光沢反射・拡散相互反射のそれぞれにレイトレーシング手法を適用し、ラスタライゼーションと組み合わせて一つのハイブリッドレンダリングシステムを構築する過程を示す。

これが使える場面: 「レイトレーシングをどこに入れるか」の優先順位付けに悩むとき、商用タイトルの判断基準が参考になる


5. 「レイをどう飛ばすか」という根源的な問い

第15章でMatt Pharr(PBRTの著者)は、モンテカルロ積分の基礎を丁寧に展開し、レイトレーシングへの接続を示す。一様サンプリングと重要度サンプリングの違いが収束速度にどれほど影響するかを、アンビエントオクルージョンとエリアライトの具体例で可視化している。

「レイトレーシングはサンプリングがすべてであり、サンプリングとは平均を計算する基本操作である。アンケート調査と同様に、誰に尋ねるかが重要であり、それが統計の信頼性を決定する」(Part IV序文)

レイ1本にはコストがある。そのコストをどこに投資するかがリアルタイムレンダリングの品質を決める。この「レイの経済学」を体系的に理解できるのが第15〜18章の最大の価値だ。

これが使える場面: 限られたレイ予算で画質を最大化する設計判断を迫られるすべての場面


本書の全体構成

本書は7つのパートで構成され、基礎から応用へ段階的に進む。

本書の章構成マップ

パート テーマ キーワード
I レイトレーシングの基礎 1〜5 用語、レイの定義、DXR概要
II 交差判定と効率性 6〜10 自己交差回避、浮動小数点精度、負荷分散
III 反射・屈折・影 11〜14 ネストボリューム、バンプマップ、ソフトシャドウ
IV サンプリング 15〜18 モンテカルロ法、重要度サンプリング、多数光源
V デノイジングとフィルタリング 19〜22 UE4統合、テクスチャLOD、適応的レイトレーシング
VI ハイブリッドアプローチとシステム 23〜27 Frostbite、PICA PICA、科学可視化
VII グローバルイルミネーション 28〜32 ボリューム、フォトンマッピング、コースティクス

レイトレーシングパイプラインの概要


読む前の自分に伝えたいこと

「レイトレーシングは遅い」という先入観があるなら、まず第3章と第25章だけ読んでほしい。DXRのシェーダステージを理解し、ハイブリッドレンダリングの実例を見れば、「ラスタライゼーションの代替」ではなく「ラスタライゼーションの補完」としてのレイトレーシングの姿が見えてくる。

数学が苦手でも問題ない。各章は独立しており、興味のあるところだけ拾い読みできる。ただし第15章(サンプリング)だけは通読を勧める。レイトレーシングの「なぜ」を理解するための最小投資で最大リターンが得られる章だ。

本書はCC BY-NC-ND 4.0でオープンアクセス公開されている。raytracinggems.com から無料でPDFをダウンロードできる。622ページの実践知が無料で手に入る。読まない理由がない。

合わせて読みたい

  • 『Physically Based Rendering: From Theory to Implementation(PBRT)』 — Matt Pharrらによるレンダリングのバイブル。本書Part IVの理論的背景を深掘りできる
  • 『Real-Time Rendering, 4th Edition』 — Akenine-Mollerらによるリアルタイムレンダリングの教科書。本書の位置づけを俯瞰的に理解できる
  • 『Ray Tracing Gems II』(2021) — 本書の続編。よりモダンなハードウェアとAPIに対応した実践集

Discussion