「パストレーシング」を編集中

ナビゲーションに移動 検索に移動

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

最新版 編集中の文章
1行目: 1行目:
'''パストレーシング'''(英語:Path Tracing)とは、[[3DCG]]のレンダリング手法のひとつである。[[レイトレーシング]]の発展型のひとつである。
+
'''パストレーシング'''(Path Tracing)とは、[[3DCG]]のレンダリング手法のひとつである。
 +
[[レイトレーシング]]の発展型のひとつである。
  
「分散レイトレーシング」や「モンテカルロレイトレーシング」とも呼ばれる。
+
== 概要 ==
 
+
# 出力画像の[[ピクセル]]と視点から[[レイ]]の[[ベクトル]](方向)を計算し、レイを飛ばす。
==概要==
+
# レイはモデルに衝突すると[[ブロック崩し]]のように反射する。
 
+
# レイが光源と衝突したらピクセルに照度を加算する。
#出力画像の[[ピクセル]]と視点から[[レイ]]の[[ベクトル]](方向)を計算し、レイを飛ばす。
+
#: この照度は[[双方向反射率分布関数]]( [[BRDF]] )によって低下する。
#レイはモデルに衝突すると[[ブロック崩し]]のように反射する。
 
#レイが光源と衝突したらピクセルに照度を加算する。
 
#:この照度は[[双方向反射率分布関数]]( [[BRDF]] )によって低下する。
 
 
#レイが範囲外に飛び出したら計算しない。
 
#レイが範囲外に飛び出したら計算しない。
  
これを出力画像の全[[ピクセル]]に対して行う。ここまでは古典的な[[レイトレーシング]]である。
+
これを出力画像の全ピクセルに対して行う。
[[ファイル:レイトレーシング.png|none|640px]]
+
ここまでは古典的な[[レイトレーシング]]である。
 
 
[[レイトレーシング]]では1[[ピクセル]]を生成するのに1個のレイを飛ばしているが、パストレーシングではより高画質を得るために、1[[ピクセル]]を生成するのに「進行方向を微妙にずらしたレイを大量に飛ばして、その結果を集計する」という方法を用いる。
 
[[ファイル:パストレーシング.png|none|640px]]
 
  
無尽蔵にレイを撃つと永遠に処理が終わらないので、一般的には「[[ランダム]]な16方向に飛ばす」などといった[[乱数]]を用いて計算量を一定量に抑えるという手法が用いられる。いわゆる[[モンテカルロ法]]だ。
+
パストレーシングではより高画質を得るために、1[[ピクセル]]を作るのにレイのベクトル(方向)を微妙にずらして(微分して)何度も何度もレイを飛ばすという処理が加わっている。
  
==画質==
+
古典的なレイトレーシングのレイは「[[ブロック崩し]]の玉のように反射するだけ」であるが、
レイを飛ばす数を増やすと画質は向上するが、[[ねずみ算]]的に計算量が増える。
+
パストレーシングでは「反射するたびに玉が分裂する」という処理が加わっている。レイが反射するたびに[[乱数]]を用いて様々な方向にレイを飛ばして拡散反射を計算するという「[[モンテカルロ法]]」を取りいれたものである。
しかも一定量を超えるとあんまり違いはわからない。
 
  
 
レイを飛ばす数は、そこそこな画像で「1ピクセル100レイ」、[[ラスタライズ法]]より明らかに高画質な画像で「1ピクセル5000レイ」と言われている。ハリウッド映画などではそれ以上の病的な数のレイを飛ばしていると言われている。
 
レイを飛ばす数は、そこそこな画像で「1ピクセル100レイ」、[[ラスタライズ法]]より明らかに高画質な画像で「1ピクセル5000レイ」と言われている。ハリウッド映画などではそれ以上の病的な数のレイを飛ばしていると言われている。
  
== ノイズ ==
+
== 応用 ==
レイトレーシングやパストレーシングの欠点として「レイが1回も反射しない部分(背景)にノイズが発生しやすい」という問題がある。
+
より高速でそこそこな画像を得る方法として、
 
+
[[ゲーム]]などで一般的な[[ポリゴン]]のレンダリング([[ラスタライズ法]])を事前に行い、
=== 解決策1 ===
+
それを視点から真正面の範囲外に1枚の巨大な[[テクスチャ]]として配置しておき、
1ピクセルあたりの「飛ばすレイの数」を単純に増やすという手法である。
+
レイがモデルと衝突せずに範囲外に突き抜けた場合はそのテクスチャと衝突した箇所の色をサンプリングするという技法もある。
当然ながら計算量が激増する。
+
この技法を使わずクソ真面目にやるとレイとモデルが衝突しなかった箇所にノイズが発生し、
[[力こそパワー]]である。
+
それを穴埋めるには大量のレイを飛ばして補完する必要があり計算量が激増する。
  
=== 解決策2 ===
 
「そこそこ高速」かつ「そこそこな画質」を得る方法として以下のような手法もある。
 
* [[ゲーム]]などで一般的な[[ポリゴン]]のレンダリング([[ラスタライズ法]])を事前に行い、
 
* それを視点から真正面の範囲外に1枚の巨大な[[テクスチャ]]として配置しておき、
 
* レイがモデルと衝突せずに範囲外に突き抜けた場合はそのテクスチャと衝突した箇所の色をサンプリングする
 
 
==散乱==
 
 
光散乱を考慮したものは「[[ボリュメトリックパストレース]]」と呼ばれる。
 
光散乱を考慮したものは「[[ボリュメトリックパストレース]]」と呼ばれる。
 
レイが反射するたびにレイが分裂する感じである。
 
レイが反射するたびにレイが分裂する感じである。
[[ファイル:ボリュメトリックパストレーシング.png|none|640px]]
+
計算量が激増するので完全に別物扱いである。
 
 
パストレーシングとボリュームパストレーシングの違いは大雑把にいえば、
 
レイの分裂が「最初だけ」か「反射したときも」かの違いであるが、
 
後者はアホみたいに計算量が激増するので完全に別物扱いである。
 
  
==関連==
+
== 関連 ==
*[[レイトレーシング]]
+
* [[レイトレーシング]]
*[[パストレーシング]]
+
* [[パストレーシング]]
*[[ライトトレーシング]]
+
* [[ライトトレーシング]]
*[[双方向パストレーシング]]
+
* [[双方向パストレーシング]]
*[[メトロポリス光輸送法]]
+
* [[メトロポリス光輸送法]]
*[[フォトンマップ]]
+
* [[フォトンマップ]]
*[[プログレッシブフォトンマップ]]
+
* [[プログレッシブフォトンマップ]]

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)