レイトレーシング

レイトレーシングには大別して順レイトレーシング（）と逆レイトレーシング（）があるTypes of Ray Tracing | Stanford University | Computer Science。順レイトレーシングは光源から物体へと光の粒子（光子、フォトン）を追跡する方法で、フォトントレーシングとも呼ばれる。しかしこの手法は、最終結果に影響を与えない光線も計算するため、計算過程で膨大な無駄が発生しうる。そのため、特にコンピュータグラフィックスの分野では視点から光源への経路を逆にたどることで効率化を図った、逆レイトレーシングが使われる。逆レイトレーシングは視線追跡法と呼ばれることもあるChapter1. レイトレーシング法とは何か | The Textbook of RayTracing @TDU。

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

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

この手法では反射や屈折は忠実に再現できるが、回折は近似やモデリングを必要とする。対象が異なっても伝播経路を追跡する基本的な原則は共通であるが、計算手順はそれぞれで異なる。

 光線 
代替文=|サムネイル|250x250ピクセル|レイトレーシングで描画された球 (2)

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

光は反射鏡やレンズに対して反射・屈折をするが、その様子を幾何光学的に追いかけて、光がどのような振る舞いをするのかについて知ることができる。通常、反射は正反射を用い、屈折はスネルの法則に従って計算する。またレンズなどの複数の光学素子を組み合わせた場合、光線を追う計算は複雑で面倒なものになってしまうが、1930年代にThomas Smithにより行列を用いて容易に計算する方法が見出されたT. Smith, “On tracing rays through an optical system”Lect -6 .Matrix Methods。

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

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

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

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

なお、熱力学的なアプローチによって、光源が放射する光のエネルギーを解析し、物体表面の拡散反射をシミュレートする手法としてラジオシティがあるラジオシティ法とは - 意味をわかりやすく - IT用語辞典 e-Words。ラジオシティ法はグローバル・イルミネーションを実現する手法のひとつであり、（古典的な）レイトレーシング法が苦手とする、相互反射による柔らかな間接照明をレンダリングすることができるが、レイトレーシングよりもさらに膨大な計算が必要となるIntroduction to 3D Computer Graphics - ラジオシティ(Radiosity) | 信州大学。

 歴史 
レイトレーシングはアルブレヒト・デューラーが木版画で発想した（「Draughtsman Making a Perspective Drawing of a Reclining Woman」、1600年頃、メトロポリタン美術館）。コンピュータプログラムによるレイトレーシングはアーサー・アッペルが1968年により成された（現在の「レイキャスティング法」）。1971年にのゴールドスタインとナゲルがCDC 6600や16ミリフィルム等で30秒の映像を作った。1976年にカリフォルニア工科大学でパラパラマンガが作られた。パラパラマンガの作者スコット・ロスが「レイキャスティング」という用語をコンピュータグラフィックスとソリッドモデリングについての文で初めて使ったRoth, Scott D. (February 1982), "Ray Casting for Modeling Solids", Computer Graphics and Image Processing, 18 (2): 109–144, doi:10.1016/0146-664X(82)90169-1。1979年にジョン・ターナー・ウィテッドの論文が不偏レンダリングの参考となった。

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

2009年時点でマルチコア化したプロセッサ（マルチコア・マルチソケットCPUやGPU）で高性能な並列処理ができるようになる。映画や工業デザイン分野では人手を介した作業が廃されて全てレイトレーシングベースの処理に集約することや、映画や工業デザインのみで作られていたリアルな画像がPC上でもゲームのような用途で短時間で製作できるようになる可能性がある進藤智則　『リアルタイム化でよみがえるレイトレーシング技術』　日経エレクトロニクス2009年10月5日号。

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

2020年現在、GPUベースのリアルタイムレイトレーシングを実現しているAPI（ライブラリ、レンダリングエンジン）としては、 NVIDIA® OptiX アプリケーション・エンジン | NVIDIA NVIDIA® OptiX Application Acceleration Engine | NVIDIA、の 4Gamer.net ― PowerVRのImaginationが“ハイエンドGPU”の設計に着手。ハイブリッドレンダリングハードウェア，そして新API「OpenRL」とは？、 (DXR)、Vulkan Ray Tracing、そしてMetal Ray Tracingが挙げられる。GPUによるリアルタイムレイトレーシングは、GPUがプログラマブルシェーダーに対応し、さらに汎用計算 (GPGPU) に対応するよう進化してきたおかげで可能となった。NVIDIA OptiXはAdobe After Effects CCGPU changes (for CUDA and OpenGL) in After Effects CC (12.1)  |  After Effects region of interestやBlenderのCyclesエンジンRTX On: Chaos V-RAY GPU Next と Blender Cycles が RTX に対応 | NVIDIAなどに採用されている。Vulkanにおけるレイトレーシングは当初NVIDIAの拡張として実装されていたが、その後Khronosによって標準拡張として採用されており、DXRとよく似た設計になっているグラフィックスAPI「Vulkan」がリアルタイムレイトレーシングに対応。Windowsだけでなく，MacやLinuxでも利用可能に。2018年にリリースされたNVIDIA GeForce RTX 20シリーズは、リアルタイムレイトレーシングのハードウェアアクセラレーションに対応したRTコアを初めて搭載したGPUである。ハイエンドのAAAゲームタイトルではすでにDXRの活用が始まっている西川善司の3DGE：現状のレイトレ要素全部入りといわれる新作ゲーム「CONTROL」のグラフィックスの魅力を検証する。2020年後半にリリースされたRDNA 2ベースのAMD Radeon RX 6000シリーズAMDの次世代GPUアーキテクチャ「RDNA 2」、ついにハードウェアレイトレーシング対応 ～Zen 4までのロードマップ公開。データセンター向けの新GPUアーキテクチャ「CDNA」も - PC Watch【Hothotレビュー】AMD最強の「Radeon RX 6900 XT」は競合とどのぐらい渡り合える性能なのか? - PC Watchや、2022年登場のIntel Arcもリアルタイムレイトレーシングに対応している。

また、CPUベースのリアルタイムレイトレーシングを実現しているソフトウェアとしてはKeyShot 主な機能 | KeyShot™総合サイト Tech Specs - KeyShotが挙げられる。

NVIDIAは、更に高度なリアルタイムパストレーシングへの移行が次のステップであるとしている。ゲームのタイトルとしては『Minecraft(PC版のみ)』，『Portal』，『Quake II』，『サイバーパンク2077』が既に対応済みである。

 用途 
広義のレイトレーシングは、実写では再現不可能な映画の特殊効果や、工業用・建築用のデザインで採用されている。ゲーム業界でも部分的に使用されている。

 電波 
電波のレイトレーシングでは発信点からの電波を仮想的に追跡し、受信点における伝播特性、特に電界密度を得る。多くの場合、これを格子状に、通常は一定の高度の水平面上に配置された受信点に対し繰り返し行い、電界密度マップを得る。このマップは、無線設備の配置の決定などに使われる。

与えられた発信点から与えられた受信点までの波線は一意に定まらないため、次の解法がある。

レイラウンチング法 (ray launching)
送信点から多数のレイを発射 (launch) し、受信点の近くを通るレイを選び出す。計算量は少ないが、厳密な結果を得るためにはテクニックが必要である。なお、正しくは「レイローンチング」だが、慣習的に「レイラウンチング」と呼ぶ。
イメージング法 (imaging)
「イメージ」は「鏡像」の意味。鏡像原理にもとづき送信点と受信点を結ぶ経路のみを計算するため、常に厳密な結果が得られるが、反射回数に対し計算量が指数関数的に増加するため、2-3回程度の反射しか追跡できない。

 地震波・超音波 
地震波や超音波での通常のレイトレーシングでは、反射・屈折などの条件から、受信点での受信波を計算するが、この場合は、実際に測定された受信波から反射・屈折などの条件（特に波速分布）を逆算し、トモグラフィー（断層画像）を得る。

 出典 

 関連項目 

 光線行列解析
 モンテカルロ法
 グローバル・イルミネーション




 レンダリング (コンピュータ)#レンダリング (3DCG)
 Sparse Voxel Octree

Category:計算幾何学
Category:振動と波動
Category:光学
Category:コンピュータグラフィックス
Category:3DCG
Category:無線