レイ・トレーシング
[Wikipedia|▼Menu]
この手法は、カメラや観察者に相当する受信点を中心に画角となる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]

2020年現在、GPUベースのリアルタイムレイトレーシングを実現しているAPI(ライブラリ、レンダリングエンジン)としては、NVIDIA OptiX(英語版) [10] [11]、イマジネーションテクノロジーズ(英語版)のOpenRL(英語版) [12]、DirectX Raytracing(英語版) (DXR)、Vulkan Ray Tracing、そしてMetal Ray Tracingが挙げられる。GPUによるリアルタイムレイトレーシングは、GPUがプログラマブルシェーダーに対応し、さらに汎用計算 (GPGPU) に対応するよう進化してきたおかげで可能となった。NVIDIA OptiXはAdobe After Effects CC[13]BlenderのCyclesエンジン[14]などに採用されている。Vulkanにおけるレイトレーシングは当初NVIDIAの拡張として実装されていたが、その後Khronosによって標準拡張として採用されており、DXRとよく似た設計になっている[15]。2018年にリリースされたNVIDIA GeForce RTX 20シリーズは、リアルタイムレイトレーシングのハードウェアアクセラレーションに対応したRTコアを初めて搭載したGPUである。ハイエンドのAAAゲームタイトルではすでにDXRの活用が始まっている[16]。2020年後半にリリースされたRDNA 2ベースのAMD Radeon RX 6000シリーズ[17][18]や、2022年登場のIntel Arcもリアルタイムレイトレーシングに対応している[19]


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

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