01 / 読書ガイド
読書ガイド
引用
Akenine-Möller, T., Haines, E., Hoffman, N., Pesce, A., Iwanicki, M., & Hillaire, S. (2018). Real-Time Rendering (4th ed.). A K Peters/CRC Press.
章の要約
本書は 24 章、約 1,200 ページで、長い参考文献が付く。序文は範囲を次のように示している。閲覧者が仮想環境と対話できるほどの速さで合成画像を生成するアルゴリズムであり、三次元レンダリングを中心に、ユーザとの対話にも限定的に触れる。モデリングとアニメーションは対象外である。グラフィックス API ではなくアルゴリズムに焦点を当て、著者は本書を百科事典というより案内書だと述べ、各話題について代表的な方法を少数示し、さらに読むための文献を挙げるとしている。第1章は記法を説明する。ベクトル、点、行列で、列ベクトルと同次座標を用いる。
第1〜3章:はじめに、グラフィックスレンダリングパイプライン、グラフィックス処理装置
第2章はパイプラインをリアルタイムレンダリングの核心として提示する。アプリケーション段階、ジオメトリ処理、ラスタライズ、ピクセル処理を順に述べ、パイプラインを通して一巡する。第3章は GPU がこれらの段階をデータ並列ハードウェアでどう実装するかを示し、頂点シェーダからテッセレーション、ジオメトリシェーダ、ピクセルシェーダ、マージ段階を経てコンピュートシェーダまでを扱い、プログラマブルシェーディングと API の進化にも触れる。
第4〜6章:変換、シェーディングの基礎、テクスチャリング
第4章は基本変換と特殊な行列変換、四元数、頂点ブレンド、モーフィング、ジオメトリキャッシュの再生、射影を扱う。第5章はシェーディングモデル、光源、シェーディングモデルの実装、エイリアシングとアンチエイリアス、透明度・アルファ・合成、表示のエンコードを紹介する。第6章はテクスチャリングパイプライン、画像テクスチャとプロシージャルテクスチャ、テクスチャアニメーション、マテリアル・アルファ・バンプ・視差の各マッピング、テクスチャ付き光源を扱う。
第7〜9章:影、光と色、物理ベースシェーディング
第7章は平面影、シャドウボリューム、シャドウマップとそのフィルタリングの変種(パーセンテージクローザーフィルタリングとソフトシャドウ、フィルタ済みシャドウマップ)、ボリューム影の技法、不規則 Z バッファ影を概観する。第8章は光の量と、シーンから画面までの経路を定義する。第9章は物理ベースシェーディングを一から組み立てる。光の物理、カメラ、BRDF、フレネル反射、微小幾何とマイクロファセット理論、表面反射の BRDF モデル、表面下散乱、布、波動光学、層状マテリアル、マテリアルのブレンドとフィルタリングである。
第10〜12章:局所照明、大域照明、画像空間の効果
第10章は面光源と環境照明を扱い、球関数・半球関数、環境マッピング、鏡面反射のイメージベースドライティング、放射照度環境マッピングを含む。第11章はレンダリング方程式から始め、アンビエントオクルージョンと方向性オクルージョン、拡散・鏡面の大域照明を扱い、統合的な手法で終わる。第12章は画像処理とリプロジェクションに続き、レンズフレアとブルーム、被写界深度、モーションブラーを扱う。
第13〜15章:ポリゴンを超えて、ボリュームと半透明のレンダリング、ノンフォトリアリスティックレンダリング
第13章は三角形以外の選択肢を概観する。スカイボックス、ライトフィールドレンダリング、スプライトとレイヤー、ビルボード、ディスプレイスメント、パーティクルシステム、点レンダリング、ボクセルである。第14章は光の散乱理論とボリュームレンダリング、空のレンダリング、半透明面、表面下散乱、毛髪を扱う。第15章はトゥーンシェーディング、輪郭線のレンダリング、ストロークによる表面の様式化、線とテキストのレンダリングを扱う。
第16〜17章:ポリゴンの技法、曲線と曲面
第16章は 3D データの入手元、テッセレーションと三角形分割、統合、三角形のファン・ストリップ・メッシュ、簡略化、圧縮と精度を扱う。第17章はパラメトリックな曲線と曲面、陰関数曲面、細分割曲線と細分割曲面、効率的なテッセレーションを扱う。
第18〜20章:パイプラインの最適化、高速化アルゴリズム、効率的なシェーディング
第18章はプロファイリングとデバッグのツール、ボトルネックの特定、性能の測定、最適化、マルチプロセッシングを扱う。第19章は空間データ構造、カリング(背面、視錐台、ポータル、ディテール、オクルージョン)、詳細度、大規模シーンのレンダリングを扱う。第20章はディファードシェーディング、デカールのレンダリング、タイルドおよびクラスタードシェーディング、ディファードテクスチャリング、オブジェクト空間・テクスチャ空間でのシェーディングを扱う。
第21〜24章:VR と AR、交差判定の方法、グラフィックスハードウェア、未来
第21章は VR と AR の機器、物理的要素、API とハードウェア、レンダリング技法を扱う。第22章は幾何学的な交差判定の参考資料で、ピッキング、境界ボリュームの作成、光線と球・箱・三角形・多角形、その他の組み合わせを扱う。第23章はグラフィックスハードウェアを説明する。ラスタライズ、大規模な計算とスケジューリング、メモリアーキテクチャ、カラーバッファと深度バッファ、テクスチャリング、事例研究、レイトレーシングのアーキテクチャである。第24章は「その他すべて」と「あなた」で閉じる。
主要概念
第2〜6章:パイプラインと基礎
- グラフィックスレンダリングパイプライン:アプリケーション、ジオメトリ処理、ラスタライズ、ピクセル処理。
- プログラマブルシェーダ段階:GPU パイプラインのうちプログラマが制御する段階。
- テクスチャリング:画像を用いて表面の見た目に変化を与えること。
第7〜12章:光と見え方
- シャドウマップ:画像空間の主要な影の技法とそのフィルタリングの変種。
- BRDF とマイクロファセット理論:表面反射の物理的な基礎。
- イメージベースドライティングと大域照明:シーン全体での光の相互作用の近似。
第13〜17章:表現
- ビルボード、パーティクル、ボクセル:ポリゴンメッシュ以外の選択肢。
- 細分割曲面とテッセレーション:粗い制御メッシュから作る滑らかな曲面。
第18〜24章:性能、VR、ハードウェア
- カリングと詳細度:見えないものを省き、遠くのものを簡略化する。
- ディファード、タイルド、クラスタードシェーディング:多数の光源を効率よく処理するためのシェーディングの構造。
- VR/AR のレンダリング:高速で一定のフレームレートが求められる状況でのレンダリング。
批判的分析
長所
- 一冊での幅広さ。 24 章は、パイプラインと変換から、物理ベースシェーディング、大域照明、ボリュームとノンフォトリアリスティックなレンダリング、そして最適化、高速化、VR、ハードウェアまでに及ぶ。
- 第4版での更新。 出版社は、仮想現実・拡張現実の新しい章と、視覚的な見え方、大域照明、曲線と曲面の新しい扱いを強調している。この版では原著者陣に三人が加わった。
- 参考文献付きの案内書。 ほとんどの章の末尾にさらなる読み物があり、著者の方針は各話題の代表的な方法を少数述べ、残りは文献に委ねることである。
- 評者の推薦。 出版社が引用する評は、Valve、NVIDIA、Unity、Cesium の実務者と『Physically Based Rendering』の共著者によるもので、膨大な仕事を凝縮し、深さと参考文献を備えていると評している。
- 無料の追加資料。 衝突検出の章と、線形代数・三角法の付録は著者のウェブサイトで無料で入手できる。
短所
- 前提知識を仮定する。 序文は基本的なコンピュータグラフィックス、計算機科学、プログラミングの知識を期待しており、本書は入門コースではない。
- API ではなくアルゴリズム。 OpenGL、Vulkan、Direct3D は教えないので、述べられている内容を実装するには別のプログラミング教材が必要である。
- 意図的に選択的。 モデリングとアニメーションは除外され、著者は章によって(例として影)それだけで一冊の本が書かれているものがあると述べている。
- 分量。 約 1,200 ページで、通読するよりも章ごとに参照して使う本である。
コースにおける位置づけ
これはグラフィックス関連の書目の中で、包括的で実践的な参考書である。『Computer Graphics from Scratch』は読者がレイトレーサとラスタライザを書く短い入門書、『Interactive Computer Graphics』はトップダウンの WebGL 講座であり、どちらも本書の前にパイプラインに触れる方法となる。『Fundamentals of Computer Graphics』は、レイトレーシングとラスタライズの背後にある数学とアルゴリズムを扱う標準的な学部の教科書である。『Physically Based Rendering』はオフラインでフォトリアリスティックなレンダラのソースをその数学とともに示すのに対し、本書は GPU 上の対話的な速度を目標とする。
『Interaction Design』はコースのもう一方、すなわちレンダリングではなくユーザ中心設計に属する。最初のグラフィックスの講義の後、本書は『Fundamentals of Computer Graphics』と並行して、またはその後に読み、数学を伴う完全なレンダラ、特にオフラインのフォトリアリズムを目指すものを求めるときは『Physically Based Rendering』に向かうとよい。
本書の使い方
グラフィックスの最初の講義を終え、線形代数に慣れ、グラフィックス API の経験が多少ある読者向けである。現役のグラフィックスプログラマも利用している。
実用的な進め方:
- 中核: 第2〜3章(パイプライン、GPU)、第4章(変換)、第5〜6章(シェーディングとテクスチャリング)、第7章(影)、および第18〜19章(最適化と高速化)。
- 見え方の道筋: 物理ベースのシェーディングと照明のために第8〜11章を順に読む。第9章はこの群で最も長い。
- 話題別の章: 後処理、別の表現、ボリューム、様式化は第12〜15章、ジオメトリは第16〜17章、効率と VR/AR は第20〜21章を必要に応じて読む。
- 参考: 第22〜23章は交差判定とハードウェアの参照用資料として扱う。
グラフィックス API を手元に置き、読んだ各章から一つの機能を実装する。本書が要約にとどまる箇所は、引用されている文献に沿って掘り下げる。
