レイ・トレーシング
[Wikipedia|▼Menu]
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方
出典検索?: "レイトレーシング" ? ニュース ・ 書籍 ・ スカラー ・ CiNii ・ J-STAGE ・ NDL ・ dlib.jp ・ ジャパンサーチ ・ TWL(2020年9月)

レイトレーシング(: ray tracing, 光線追跡法)は、光線などを追跡することで、ある点において観測される像などをシミュレートする手法である。レイ・トレーシングと表記されることもある。物理学の分野では、波または粒子の経路の計算に用いられる。コンピュータグラフィックスの分野では、物理的に正確な反射・屈折・影・間接照明を描画することによってライティングを写実的にシミュレートする技術のことである[1]

レイトレーシングには大別して順レイトレーシング(forward ray tracing)と逆レイトレーシング(backward ray tracing)がある[2]。順レイトレーシングは光源から物体へと光の粒子(光子、フォトン)を追跡する方法で、フォトントレーシングとも呼ばれる。しかしこの手法は、最終結果に影響を与えない光線も計算するため、計算過程で膨大な無駄が発生しうる。そのため、特にコンピュータグラフィックスの分野では視点から光源への経路を逆にたどることで効率化を図った、逆レイトレーシングが使われる。逆レイトレーシングは視線追跡法と呼ばれることもある[3]

光線の他、直線的に伝わる(回折などの影響が少ない)ものであれば任意のに適用できる手法であり、たとえば光以外の波長の短い電磁波(電波)や音波など(地震波超音波など)が挙げられる。「波線追跡法」「音線追跡法」などといった語もある。

ある点(ある人の視点・耳・電波観測装置など)に届く光線・波線(電波の仮想的な線)・音線(音波の仮想的な線)などを逆にたどることによって、その点における視像(画像)・音像などを描画する。たとえば光線であれば、物体の表面の反射率、また透明度・屈折率等々を細かく反映させた像を得られるのが特徴であり、1画素ずつ光線の経路を計算するので、光源形状に応じた光沢の反映や金属表面への周囲環境の映り込み、ガラスや水の透過屈折現象など、写実的に描画することができるという特長がある。しかしその反面、一般的に大量の光線の追跡により計算量は非常に多くなる。

この手法では反射屈折は忠実に再現できるが、回折近似モデリングを必要とする。対象が異なっても伝播経路を追跡する基本的な原則は共通であるが、計算手順はそれぞれで異なる。
光線レイトレーシングで描画された球 (1)レイトレーシングで描画された球 (2)

レイトレーシングの基本は、レイ (: ray) すなわち光線を扱うものであり、光の光学的振る舞いをシミュレートする。これは3次元コンピュータグラフィックス (3DCG) を描画するレンダリング技法のひとつとして応用されている。

光は反射鏡レンズに対して反射屈折をするが、その様子を幾何光学的に追いかけて、光がどのような振る舞いをするのかについて知ることができる。通常、反射は正反射を用い、屈折はスネルの法則に従って計算する。またレンズなどの複数の光学素子を組み合わせた場合、光線を追う計算は複雑で面倒なものになってしまうが、1930年代にThomas Smithにより行列を用いて容易に計算する方法が見出された[4][5]

レンズや反射鏡を用いる光学機器の開発に用いられ、物体の像をつくるときに発生する収差を推定することに用いられる。

コンピュータの出現以前は、手計算を用いていたため膨大な時間がかかったが、コンピュータによって高速かつ大量の計算が可能になった。コンピュータの進歩に伴い、3次元コンピュータグラフィックスで光の当たり方や物体の見え方のシミュレーションにも用いられるようになっている。この場合、乱反射や散乱といった現象も含めて計算される。

この手法は、カメラや観察者に相当する受信点を中心に画角となる2次元方向内の微小な角度ごとのそれぞれの方向から受け取るはずの光線(レイ)について、算術演算処理をそれぞれ行うことで仮想的に逆方向に追跡し、その方向に何が見えるかを判定する。透明な物体では境界面ごとに複数の屈折光と反射光に分かれるが、それぞれの伝播経路を計算する。わずかな吸収を除けばほとんどが反射光となる鏡面反射では演算量があまり増えないが、透明や鏡面でない物体の表面は周囲のあらゆる方向へ光を乱反射しているため、それらをすべて演算しようとすれば演算量が指数関数的に増えてしまい有限時間内には処理できなくなる。こういった拡散反射は乱数によってランダムに選ばれた方向のみに限定することで演算量を現実的な処理量に抑えた「モンテカルロ・レイトレーシング」(Monte Carlo Ray Tracing) によってシミュレートされる。モンテカルロ・レイトレーシングの内でも「分散レイトレーシング」と呼ばれる手法では、ある程度のリアルさをシミュレートするために拡散反射する表面ごとに逆追跡が必要な経路が多数生じるため、複数の表面同士で反射する光まで再現しようとしてやはり演算処理量が爆発的に増加してしまう。拡散反射する表面での逆追跡が必要な経路をランダムに1つだけ生む手法は「パス・レイトレーシング」と呼ばれる。

レイトレーシングに似た手法、または最も広義のレイトレーシング手法の1つとも考えられるものに「フォトン・マッピング」がある。レイトレーシングが観察者やカメラ側から光線の経路を逆追跡するのに対して、フォトン・マッピングでは光源側から光線の経路を再現する[6]。「光線行列解析」も参照

なお、熱力学的なアプローチによって、光源が放射する光のエネルギーを解析し、物体表面の拡散反射をシミュレートする手法としてラジオシティがある[7]。ラジオシティ法はグローバル・イルミネーションを実現する手法のひとつであり、(古典的な)レイトレーシング法が苦手とする、相互反射による柔らかな間接照明をレンダリングすることができるが、レイトレーシングよりもさらに膨大な計算が必要となる[8]
歴史

3DCGにおけるレイトレーシングは1979年にレンダリング手法のひとつとして考案された。この最初に考案された狭義のレイトレーシング手法は、単純な形状の透明な物体や鏡面を再現するには効果的であったが、ざらついた質感を持つ物体の表面を表現したり複雑な形状を再現するには当時のコンピュータの処理能力の制約もあって適していなかった。その後、表現力を広げるための新たな手法が「モンテカルロ・レイトレーシング」「分散レイトレーシング」「パス・レイトレーシング」として考案され、こういった広義でのレイトレーシング手法は、21世紀初頭現在、間接光を再現する大域照明技術の代表的なものとなっている。

20世紀末から2000年代最初の数年間までは、映画のような動画を作るにも1フレーム当たり数分や十時間ほどもその当時の最新のコンピュータで演算する必要があり、2009年現在では、大規模な高精細度の動画生成が求められる映画産業や工業デザイン産業ではレンダー・ファームと呼ばれる100-1,000台規模のクラスタ・サーバーを構築することで対応している。広義でのレイトレーシング手法だけを用いて動画を生成しようとすると、高精細で複雑な照明効果をリアルに再現した画像を短時間に生み出すにはさらに巨大なコンピュータ群を必要とする。そのため、実際の一般的なコンピュータ・グラフィックス映像では、間接光などの再現はレイトレーシングだけに頼らず、影の再現は「シャドウ・マッピング」や「アンビエント・オクルージョン」や「ライトマップ」などを使ったり、光沢面への周囲の写り込みは「環境マッピング」などを使ったり、場合によっては人が描いた2次元画像を物体表面の模様としてテクスチャマッピングしたり、オーサリングツール上で重ね合わせたりするなど、複合的・疑似的あるいは人手を介した多様な手法によって製作されている。

2009年現在、マルチコア化したプロセッサ(マルチコア・マルチソケットCPUGPU)に代表される高性能な並列処理能力が得られるようになりつつあり、映画や工業デザイン分野では人手を介した作業が廃されてすべてをレイトレーシングベースの処理に集約することや、また映画や工業デザインのみで作られていたリアルな画像が、今後は個人所有のPC上でもゲームのような用途で短時間で製作できるようになる可能性がある[6]
リアルタイムレイトレーシング

レイトレーシングによる物理学的に正確で現実に即した光のシミュレーションには膨大な計算が必要となるため、長らく技術デモやプロダクションレンダリング(映画やCMなど)でのみ使用されてきた。特に実時間(リアルタイム)での描画が必要なシミュレーションやコンピュータゲームでは、時間的・資源的な制約から、光源と可視ポリゴン(あるいは3次元空間のポリゴンを2次元空間にラスタライズした後のピクセル)との1対1の位置関係のみを考慮したベクトル計算と塗りつぶしだけで簡易的かつ高速に描画できるラスタライズ法が採用されることが普通であったが、ハードウェアの高性能化に伴いリアルタイムレンダリングでもレイトレーシングおよびグローバルイルミネーションを活用する道が開けつつある[9]


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:33 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef