フォトンマッピングとは、コンピュータグラフィックスにおける大域照明(グローバルイルミネーション)アルゴリズムのひとつである。双方向グローバルイルミネーションの一種。
レンダリング方程式
(英語版)の近似解法として、Henrik Wann Jensen(ヘンリク・ワン・イェンセン)によって開発された。フォトンマッピングでは、まず光源から放たれるレイ(光線)と、カメラ(視点)からのレイが、一定の臨界値に到達するまでそれぞれ独立して追跡され、その後放射値(フォトンマップ)を生成するための第2ステップで結合される。これにより、現実に即した形で、光と物体との相互作用がシミュレートされる。特に、ガラスや水のような、透明な物質を光が透過する際の屈折現象や、拡散相互反射(diffuse interreflection)、表面下散乱(subsurface scattering)、および煙や水蒸気のような微細粒子状の物質によって引き起こされる光学現象などをシミュレートすることが可能となる。
フォトンマッピングでは、古典的レイトレーシングやラジオシティには不可能なコースティクス(集光模様)などをレンダリングすることができる。
なお、フォトンマッピングにおける「フォトン」とは、光線光学に基づいて光を離散化したものであり、実際のフォトン(光子)の振る舞いを量子力学的にモデル化しているわけではない。
関連項目
グローバルイルミネーション
ラジオシティ
レイトレーシング
環境マッピング
表
話
編
歴
3Dレンダリング
レンダリング
グラフィックスパイプライン
レンダリングエンジン
ジオメトリエンジン
レンダリング手法
ボリュームレンダリング
テッセレーション
大域照明
レイトレーシング
レイトレーシング
パストレーシング(英語版)
不偏レンダリング
ボリュームレイキャスティング(英語版)
ボリューメトリックパストレーシング(英語版)
フォトンマッピング
スペクトルレンダリング(英語版)
ビームトレーシング(英語版)
コーントレーシング(英語版)
分散レイトレーシング(英語版)
メトロポリス光輸送法(英語版)
Bezier clipping
ラスタライズ
Zオーダー法
Zバッファ法
スキャンラインレンダリング(英語版)
Reyesレンダリング(英語版)
遅延シェーディング
ステンシルバッファ
タイルレンダリング(英語版)
その他
ラジオシティ
ライトマップ(英語版)
ライティング/
シャドウイング
ピクセル単位ライティング(英語版)
イメージベースドライティング
球面調和ライティング(英語版)
シャドウマッピング(英語版)
シャドウボリューム(英語版)
ボリュームライティング(英語版)
セルフシャドウ(英語版)
シェーディング
シェーディング
シェーダー
シェーディング言語
GLSL
HLSL
RSL
OSL
物理ベースシェーディング
測定マテリアル
非写実的レンダリング
セルシェーディング
グーチシェーディング(英語版)
古いシェーディング手法
グーローシェーディング
フォンシェーディング
サンプリング及び
アンチエイリアス
マルチサンプルアンチエイリアシング(英語版)(MSAA)
スーパーサンプリング
超一様分布列(英語版)(LDS)
時間的アンチエイリアシング(英語版)(TAA)
高速近似アンチエイリアシング(英語版)(FXAA)
レンダリングAPI
ハイブリッド
Vulkan
Direct3D
DirectX Raytracing(英語版)
Metal
ラスタライズ
OpenGL
OpenGL ES
WebGL
WebGPU
レイトレース
OpenRL(英語版)
OptiX(英語版)
レンダリング
ソフトウェア
Arnold
Cycles
V-Ray
RenderMan
Indigo Renderer
Maxwell Render
LuxCoreRender
Mental Ray
Iray
Octane Render(英語版)
3Delight
.mw-parser-output .asbox{position:relative;overflow:hidden}.mw-parser-output .asbox table{background:transparent}.mw-parser-output .asbox p{margin:0}.mw-parser-output .asbox p+p{margin-top:0.25em}.mw-parser-output .asbox{font-size:90%}.mw-parser-output .asbox-note{font-size:90%}.mw-parser-output .asbox .navbar{position:absolute;top:-0.90em;right:1em;display:none}
この項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています(PJ:コンピュータ/P:コンピュータ)。
.mw-parser-output .hlist ul,.mw-parser-output .hlist ol{padding-left:0}.mw-parser-output .hlist li,.mw-parser-output .hlist dd,.mw-parser-output .hlist dt{margin-right:0;display:inline-block;white-space:nowrap}.mw-parser-output .hlist dt:after,.mw-parser-output .hlist dd:after,.mw-parser-output .hlist li:after{white-space:normal}.mw-parser-output .hlist li:after,.mw-parser-output .hlist dd:after{content:" ・\a0 ";font-weight:bold}.mw-parser-output .hlist dt:after{content:": "}.mw-parser-output .hlist-pipe dd:after,.mw-parser-output .hlist-pipe li:after{content:" |\a0 ";font-weight:normal}.mw-parser-output .hlist-hyphen dd:after,.mw-parser-output .hlist-hyphen li:after{content:" -\a0 ";font-weight:normal}.mw-parser-output .hlist-comma dd:after,.mw-parser-output .hlist-comma li:after{content:"、";font-weight:normal}.mw-parser-output .hlist-slash dd:after,.mw-parser-output .hlist-slash li:after{content:" /\a0 ";font-weight:normal}.mw-parser-output .hlist dd:last-child:after,.mw-parser-output .hlist dt:last-child:after,.mw-parser-output .hlist li:last-child:after{content:none}.mw-parser-output .hlist dd dd:first-child:before,.mw-parser-output .hlist dd dt:first-child:before,.mw-parser-output .hlist dd li:first-child:before,.mw-parser-output .hlist dt dd:first-child:before,.mw-parser-output .hlist dt dt:first-child:before,.mw-parser-output .hlist dt li:first-child:before,.mw-parser-output .hlist li dd:first-child:before,.mw-parser-output .hlist li dt:first-child:before,.mw-parser-output .hlist li li:first-child:before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child:after,.mw-parser-output .hlist dd dt:last-child:after,.mw-parser-output .hlist dd li:last-child:after,.mw-parser-output .hlist dt dd:last-child:after,.mw-parser-output .hlist dt dt:last-child:after,.mw-parser-output .hlist dt li:last-child:after,.mw-parser-output .hlist li dd:last-child:after,.mw-parser-output .hlist li dt:last-child:after,.mw-parser-output .hlist li li:last-child:after{content:")\a0 ";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li:before{content:" "counter(listitem)" ";white-space:nowrap}.mw-parser-output .hlist dd ol>li:first-child:before,.mw-parser-output .hlist dt ol>li:first-child:before,.mw-parser-output .hlist li ol>li:first-child:before{content:" ("counter(listitem)" "}.mw-parser-output .navbar{display:inline;font-size:75%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}.mw-parser-output .infobox .navbar{font-size:88%}.mw-parser-output .navbox .navbar{display:block;font-size:88%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}