ゲームグラフィクスアルゴリズム資料一覧

(最終更新:2015/09/27)

ゲームグラフィクスに興味のある人向けに資料を分類して集めました。
新しいの見つけたら増やしたり分類し直したりします。

※以下は応用的な内容なので、復習も兼ねて基礎的なアルゴリズム(CG数学、パイプラインとかシャドウマップ、法線マップなど)のページも後で作ろうかと思ってます。

Physically Based Rendering

物理的な観察に基づいたパラメータを用いたシェーディングモデル、スペキュラ反射
エネルギー保存則に従ったライティング、エリアライト

資料 概要 実装
Real Shading in Unreal Engine 4 PBR全般,エリアライト UnrealEngine4
Moving Frostbite to PBR PBR全般,エリアライト Frostbite
シリコンスタジオの最新テクノロジーデモ技術解説 PBR全般,TemporalAA MIZUCHI
Moving to the Next Generation - The Rendering Technology of Ryse PBR全般 Ryse: Son of Rome
「FINAL FANTASY 零式HDにみる 新しいHDリマスター」講演資料 完全版 PBR全般,TemporalAA FINAL FANTASY 零式 HD

Global Illumination

光源から直接照らされる光を直接光、光源以外の表面に一回以上反射した後の光を間接光というが、
グローバルイルミネーション(大域照明)では間接光を取り扱う。
複数回の反射計算を行う必要が有るため負荷が非常に高く、ライトマップなどの事前計算を行うか、リアルタイムの場合大幅な近似が必要となる。
またZバッファの情報を利用したスクリーンスペースの手法も記載する。

資料 概要 実装
Multi-Scale Global Illumination in Quantum Break 粒度の粗い軽量な事前計算ボクセルツリーによるGIと、スクリーンスペースでのGIの組み合わせ。SpecularIBLの自動配置。 Quantum Break
トゥモローチルドレンで採用したVoxel Cone Tracing技術について VoxelConeTracing トゥモローチルドレン
Light Propagation Volumes in CryEngine 3 プレイヤーを中心としたボクセルに光源からのライティング情報を挿入し、繰り返し隣接ボクセルにライティング情報を伝搬し、間接光を表現する。ライティング情報はSHで格納する。 CryEngine3
Cascaded Light Propagation Volumes for Real Time Indirect Illumination LPVを階層化 CryEngine3
Image-Space Horizon-Based Ambient Occlusion 深度バッファの情報を用い、シェーディングピクセルから各方向の地平線(最も角度が大きい点)を求め平均し、環境光の遮蔽率を求める -
Line-Sweep Ambient Obscurance ピクセル単位で地平線を求めるかわりに、コンピュートシェーダを用い各方向毎にスイープを行って逐次的に最大地平線を求め、最後に結果を平均化する。HBAOの速度改良版。 -
Hierarchical Screen Space Indirect Illumination For Video Games SSIL -

Specular Reflection

拡散反射(DiffuseReflection)とは異なり、鏡面反射(SpecularReflection)は視線方向(見る角度)に大きく依存し、
ライトマップに事前ベイクしておくことが出来ない。そのため別の手法が必要となる。

資料 概要 実装
Image-based Lighting approaches and parallax-corrected cubemap 通常のCubemapは無限遠の反射として扱うため、実際の反射とはズレが生じる。この手法では、BOXで周辺環境を近似し反射レイの衝突位置を求め、比較的正確な反射にする。 -
Parallax-Corrected Cubemap 上記の日本語での解説 -
Screen Space Ray Tracing 深度バッファの情報を用いレイマーチングを行い、反射レイの衝突位置を求める。 -
GPU-Based Importance Sampling インポータンスサンプリングのGPU実装 -
Stochastic Screen-Space Reflections SSRの改良。インポータンスサンプリング,Hi-Z SSR,隣接ピクセルレイの再利用,TemporalReprojectionなどを全て活用 Frostbite

Anti Aliasing

高周波領域(ポリゴンの境界、カットアウト表現)におけるサンプリング数の不足を補い、エイリアス(ジャギーやフリッカー)を低減させる。

資料 概要 実装
High Quality Temporal Supersampling TemporalAA UnrealEngine4
SMAA: Enhanced Subpixel Morphological Antialiasing AA CryENGINE

Post Process

ライティング後の後処理

資料 概要 実装
Next Generation Post Processing in Call of Duty: Advanced Warfare ポストプロセス全般、モーションブラー、被写界深度、ブルーム Call of Duty : Advanced Warfare
A Fast and Stable Feature-Aware Motion Blur Filter MotionBlur -
魅力ある絵作りのために知っておきたい色光学豆知識,実践!シネマティックレンズエフェクト 基礎知識、被写界深度 -

Volume Rendering

気体のレンダリング

資料 概要 実装
Towards Unified and Physically-Based Volumetric Lighting in Frostbite ボリュームレンダリング Frostbite

Sky

空とか雲とか

資料 概要 実装
The Real-time Volumetric Cloudscapes of Horizon: Zero Dawn 雲生成、雲レンダリング Horizon:Zero Dawn
Precomputed Atmospheric Scattering 大気散乱 -

Spherical Harmonics

球面調和関数は、いくつかの係数だけで球体上の値(輝度など)の分布を表現できる関数。
Cubemapの代わりとして、ライティング情報の圧縮などに用いられる。

資料 概要 実装
Spherical Harmonics for Lighting SH -