
3Dコンピュータグラフィックスにおいて、レイトレーシングは、デジタル画像を生成するためのさまざまなレンダリングアルゴリズムで使用するために、光の輸送をモデル化する技術です。
計算コストと視覚的忠実度のスペクトルにおいて、レイキャスティング、再帰的レイトレーシング、分布レイトレーシング、フォトンマッピング、パストレーシングなどのレイトレーシングベースのレンダリング技術は、一般的にスキャンラインレンダリング方法よりも低速で忠実度が高い。 [ 1 ]そのため、レイトレーシングは、静止画のCGI画像や映画やテレビの視覚効果(VFX )など、レンダリングに比較的長い時間がかかっても許容されるアプリケーションで最初に採用されたが、各フレームのレンダリング速度が重要なビデオゲームなどのリアルタイムアプリケーションにはあまり適していなかった。[ 2 ]
しかし、2018年以降、リアルタイムレイトレーシングのためのハードウェアアクセラレーションは、新しい市販のグラフィックカードの標準機能となり、グラフィックAPIもそれに追随したことで、開発者はゲームやその他のリアルタイムアプリケーションで、フレームレンダリング時間への影響を最小限に抑えながら、ハイブリッドレイトレーシングとラスタライズベースのレンダリングを使用できるようになりました。
レイ トレーシングは、反射、屈折、ソフト シャドウ、散乱、被写界深度、モーション ブラー、コースティクス、アンビエント オクルージョン、分散現象 (色収差など)など、さまざまな光学効果をシミュレートできます。[ 3 ]また、光波と同様の方法で音波の経路を追跡するためにも使用でき、リアルな残響やエコーをレンダリングすることで、ビデオゲームのより没入感のあるサウンド デザインに有効なオプションとなります。[ 4 ]実際、ほぼ直線運動をする物理的な波や粒子の現象は、レイ トレーシングでシミュレートできます。
領域全体にわたって光をサンプリングするレイトレーシングベースのレンダリング技術は、通常、複数の光線を生成し、結果として生じるノイズを低減するためにノイズ除去に依存することが多い。


レイ トレーシングの概念は、16 世紀にまで遡り、その発明者として知られているアルブレヒト デューラーによって記述されました。 [ 5 ]デューラーは、3D シーンを画像平面に投影するための複数の手法を記述しました。これらの手法の中には、今日のラスタライズ のように、選択したジオメトリを画像平面に投影するものもあれば、レイ トレーシングのように、特定の光線に沿ってどのジオメトリが見えるかを決定するものもあります。[ 6 ] [ 7 ]
コンピュータを使用してレイ トレーシングで陰影付き画像を生成することは、1968 年にArthur Appelによって初めて実現されました。 [ 8 ] Appel は、シーンに陰影を付けるために各点を通るレイをトレースして可視面を特定することにより、一次可視性 (各画像点におけるカメラに最も近い面を決定する) にレイ トレーシングを使用しました。レイが交差する最も近い面が可視面でした。この非再帰的なレイ トレーシングベースのレンダリング アルゴリズムは、今日では「レイ キャスティング」と呼ばれています。彼のアルゴリズムは、次に陰影を付けている各点から光源への二次レイをトレースして、その点が影になっているかどうかを決定しました。
その後、1971年にMAGI(Mathematical Applications Group, Inc.)のGoldsteinとNagel [ 9 ]は「3Dビジュアルシミュレーション」を発表し、その中でレイトレーシングを使用して立体の陰影画像を作成しました。見つかったレイと表面の交点で表面法線を計算し、光源の位置がわかっているので、画面上のピクセルの明るさを計算しました。彼らの出版物では、メリーランド大学のディスプレイハードウェアに16mmカメラを取り付けて作成した短い(30秒)フィルムについて説明しています。フィルムにはヘリコプターと簡単な地上レベルの砲台が映っていました。ヘリコプターは、最終的に撃墜されて墜落するまで、旋回、離陸、着陸などの一連の操縦を行うようにプログラムされていました。CDC 6600コンピュータが使用されました。MAGIは1974年にMAGI/SynthaVision Samplerと呼ばれるアニメーションビデオを制作しました。[ 10 ]

レイキャスティングのもう 1 つの初期の例は 1976 年に、スコット ロスがカリフォルニア工科大学のボブ スプロールのコンピュータ グラフィックス コースでフリップ ブック アニメーションを作成したことです。スキャンされたページは、添付の画像にビデオとして表示されています。ロスのコンピュータ プログラムは、レイが隣接するものとは異なる境界のある平面と交差する場合、ピクセル 位置にエッジ ポイントを記録しました。もちろん、レイは空間内の複数の平面と交差する可能性がありますが、カメラに最も近い表面のポイントのみが可視として記録されました。プラットフォームは、DEC PDP-10、テクトロニクスのストレージ チューブ ディスプレイ、およびディスプレイの画像をロール状の感熱紙に作成するプリンターでした。ロスはフレームワークを拡張し、コンピュータ グラフィックスとソリッド モデリングの文脈でレイキャスティングという用語を導入し、1982 年に GM 研究所でその研究を発表しました。[ 11 ]
ターナー・ウィッテッドは、鏡面反射と半透明物体を透過する屈折について、固体の屈折率によって角度が決定される再帰的レイ トレーシングを初めて示し、アンチ エイリアシングにレイ トレーシングを使用しました。[ 12 ]ウィッテッドは、レイ トレーシングによる影も示しました。彼は、ベル研究所のエンジニアであった 1979 年に、再帰的レイ トレーシングによる映画「The Compleat Angler」[ 13 ]を制作しました。ウィッテッドの高度に再帰的なレイ トレーシング アルゴリズムは、レンダリングを主に表面の可視性の決定の問題から光の輸送の問題へと再定義しました。彼の論文は、分布レイ トレーシングや、最終的にはコンピュータ生成画像が現実に忠実になることを可能にするレンダリング方程式のフレームワークを提供するバイアスのないパス トレーシングを含む、その後の一連の研究に影響を与えました。
数十年にわたり、コンピュータ生成画像を使用する主要な映画におけるグローバルイルミネーションは、追加のライトで近似されていました。レイ トレーシング ベースのレンダリングは、物理ベースの光輸送を可能にすることで、最終的にそれを変革しました。パス トレーシングのみを使用してレンダリングされた初期の長編映画には、モンスター ハウス(2006)、くもりときどきミートボール(2009) [ 14 ]、モンスターズ ユニバーシティ(2013) [ 15 ]などがあります。


光線追跡法は、3Dコンピュータグラフィックス環境で構築された視覚画像を生成する手法であり、レイキャスティングやスキャンラインレンダリングよりもフォトリアリスティックな表現を実現します。この手法は、仮想の目から仮想スクリーンの各ピクセルを通過する経路をたどり、その経路を通して見えるオブジェクトの色を計算することで機能します。
レイトレーシングにおけるシーンは、プログラマーまたはビジュアルアーティスト(通常は中間ツールを使用)によって数学的に記述されます。シーンには、デジタル写真などの手段で撮影された画像やモデルのデータを取り込むこともできます。
通常、各光線はシーン内のすべてのオブジェクトのサブセットとの交差をテストする必要があります。最も近いオブジェクトが特定されると、アルゴリズムは交差点における入射光を推定し、オブジェクトの材質特性を調べ、これらの情報を組み合わせてピクセルの最終的な色を計算します。特定の照明アルゴリズムや反射性または半透明のマテリアルでは、シーンに再照射する光線の数が増える場合があります。
実際の光がカメラに向かって進むのとは異なり、カメラから光線を遠ざける方向に送ることは、一見すると直感に反する、あるいは「逆行」のように思えるかもしれない。しかし、そうすることで効率は桁違いに向上する。特定の光源から発せられる光線の圧倒的大多数は、直接視聴者の目に届かないため、「順方向」のシミュレーションでは、記録されない光路に膨大な計算リソースを浪費してしまう可能性がある。
したがって、レイトレーシングにおける簡略化された手法は、与えられた光線がビューフレームと交差することを前提とすることです。反射回数が最大に達するか、光線が交差することなく一定距離を進むと、光線の移動は停止し、ピクセルの値が更新されます。

そのアイデアは、各ビューポートのピクセル中心の位置を見つけることです。これにより、目から伸びる線を見つけることができます。そのピクセルを通過して、最終的に点によって記述される光線を取得しますおよびベクトル(またはその正規化)まず、ビューポートの左下隅のピクセルの座標を見つける必要があります。そして、ビューポートに平行な方向(ベクトル)に沿ってシフトすることで次のピクセルを見つけます。、) にピクセルのサイズを掛けます。以下では、距離を含む式を紹介します。目とビューポートの間。ただし、この値はレイ正規化の際に減少します。(だから、それを受け入れるしかないでしょう)そして計算から除外する)。
事前計算:ベクトルを見つけて正規化しましょうおよびベクトルこれらはビューポートと平行です(すべて上の図に示されています)。
ビューポートの中心に注意してください次に、ビューポートのサイズを計算します。逆アスペクト比を含めて2で割った値
そして、次のピクセルシフトベクトルを計算します。ビューポートに平行な方向に沿って()、左下中央ピクセル
計算:注記そしてレイそれで
自然界では、光源から発せられた光線は、最終的にその進行を遮る表面に到達します。この「光線」は、同じ経路を進む光子の流れと考えることができます。完全な真空状態では、この光線は直線になります(相対論的効果は無視します)。この光線には、吸収、反射、屈折、蛍光という4つの現象が起こり得ます。表面は光線の一部を吸収し、反射光や屈折光の強度を低下させます。また、光線の全部または一部を1つまたは複数の方向に反射することもあります。表面に透明または半透明の性質がある場合、光線の一部を別の方向に屈折させながら、スペクトルの一部(または全部)を吸収し(場合によっては色も変化させます)。まれに、表面が光の一部を吸収し、より長い波長の光をランダムな方向に蛍光的に再放出することもあります。ただし、これは非常にまれな現象であるため、ほとんどのレンダリングアプリケーションでは考慮する必要はありません。吸収、反射、屈折、蛍光といった現象を考慮すると、入射光はすべて考慮に入れなければならず、それ以上は考慮に入れてはならない。例えば、ある表面が入射光線の66%を反射し、50%を屈折させるということはあり得ない。なぜなら、両者を合計すると116%になってしまうからである。反射または屈折した光線は、そこから他の表面に当たり、その表面の吸収、屈折、反射、蛍光といった特性が、入射光線の進行に再び影響を与える。これらの光線の一部は、私たちの目に届き、私たちがその光景を目にする原因となり、最終的な画像に寄与する。
再帰的レイ トレーシングの前身であるレイ キャスティングの基本的な考え方は、目から発せられる光線をピクセルごとに追跡し、その光線の経路を遮る最も近いオブジェクトを見つけることです。画像を網戸に例えると、網戸の各正方形がピクセルになります。これが、目がそのピクセルを通して見るオブジェクトです。このアルゴリズムは、シーン内のマテリアルの特性と光の効果を利用して、このオブジェクトの陰影を決定できます。表面が光源に面している場合、光はその表面に到達し、遮られたり影になったりしないという簡略化された仮定が置かれています。表面の陰影は、従来の 3D コンピュータ グラフィックスの陰影モデルを使用して計算されます。レイ キャスティングが従来のスキャンライン アルゴリズムよりも提供していた重要な利点の 1 つは、円錐や球などの非平面の表面や立体を容易に処理できることでした。数学的な表面が光線と交差できる場合、レイ キャスティングを使用してレンダリングできます。複雑なオブジェクトは、ソリッド モデリング技術を使用して作成し、簡単にレンダリングできます。
ボリュームレイキャスティング方式では、各レイをトレースし、レイに沿って色や密度をサンプリングして、最終的なピクセルカラーに組み合わせます。この方法は、オブジェクトを明示的なサーフェス(三角形など)で容易に表現できない場合によく用いられます。例えば、雲や3D医療スキャンをレンダリングする場合などです。

SDF レイマーチング、または球面トレーシング[ 16 ]では、各レイは、符号付き距離関数(SDF)で定義された表面とレイとの交点を近似するために、複数ステップでトレースされます。SDF は、表面のどの部分も見逃さずにできるだけ大きなステップを取ることができるように、各反復ごとに評価されます。閾値を使用して、表面に十分近い点に到達したときに、それ以上の反復をキャンセルします。この方法は、3D フラクタルレンダリングによく使用されます。[ 17 ]




以前のアルゴリズムでは、目からシーンに向かって光線を追跡し、物体に当たるまで追跡していましたが、光線を再帰的に追跡することなく光線の色を決定していました。再帰的レイトレーシングでは、このプロセスを継続します。光線が表面に当たると、反射、屈折、影のために追加の光線が生成されることがあります。[ 18 ]
これらの再帰的な光線は、レイトレーシング画像にさらなるリアリティをもたらします。
レイ トレーシング ベースのレンダリングの人気は、ラスタライズなどの他のレンダリング方法とは異なり、光の輸送の現実的なシミュレーションに基づいている点にあります。ラスタライズは、ジオメトリの現実的なシミュレーションに重点を置いています。他のアルゴリズムではシミュレートするのが難しい反射や影などの効果は、レイ トレーシング アルゴリズムの自然な結果です。各レイの計算上の独立性により、レイ トレーシングは基本的なレベルの並列化に適していますが、[ 20 ]レイ パスの分岐により、並列処理での高い利用率は実際にはかなり困難です。[ 21 ]
レイ トレーシングの重大な欠点はパフォーマンスですが、シーンの複雑さと画面上のピクセル数によっては、理論的には従来のスキャンライン レンダリングよりも高速になる可能性があります。2010 年代後半まで、リアルタイムのレイ トレーシングは、複雑なタスクでは一般消費者向けハードウェアでは不可能だと考えられていました。スキャンライン アルゴリズムやその他のアルゴリズムは、データの一貫性を使用してピクセル間で計算を共有しますが、レイ トレーシングは通常、各目の光線を個別に処理してプロセスを新たに開始します。ただし、この分離には、必要に応じてより多くの光線を発射して空間アンチエイリアシングを実行し、必要に応じて画像品質を向上させることができるなど、他の利点があります。
Whitted式再帰的光線追跡は、相互反射や屈折などの光学効果を処理できますが、一般的にフォトリアリスティックではありません。レンダリング方程式を完全に評価すると、光の流れのあらゆる物理的効果が概念的に含まれるため、リアリズムが向上します。しかし、必要な計算リソースや、幾何学的および材料モデリングの忠実度の制限を考えると、これは実現不可能です。パストレーシングはレンダリング方程式を評価するためのアルゴリズムであり、現実世界の照明をより忠実にシミュレーションできます。
目から光源に向かって光線を照射して画像を生成するプロセスは、光子が実際に進む方向とは逆であるため、 「逆光線追跡」と呼ばれることがあります。しかし、この用語には混乱が生じています。初期の光線追跡は常に目から行われており、ジェームズ・アーヴォなどの初期の研究者は、光源から光線を照射して結果を取得することを「逆光線追跡」と呼んでいました。したがって、目に基づく光線追跡と光源に基づく光線追跡を区別する方がより明確です。
直接照明は一般的に目ベースのレイ トレーシングを使用してサンプリングするのが最適ですが、特定の間接効果は光源から生成されたレイから恩恵を受けることができます。コースティクスは、広い反射領域からの光が狭い (ほぼ) 拡散面領域に集束することによって生じる明るいパターンです。光源から反射オブジェクトに直接レイを投射し、その経路を目まで追跡するアルゴリズムは、この現象をより適切にサンプリングします。この目ベースと光源ベースのレイの統合は、双方向パス トレーシングとして表現されることが多く、目と光源の両方からパスが追跡され、その後、一定の長さの後で接続レイによってパスが結合されます。[ 22 ] [ 23 ]
フォトン マッピングは、光ベースと目ベースの両方のレイ トレーシングを使用するもう 1 つの方法です。最初のパスでは、高エネルギーの光子が光源からの光線に沿って追跡され、3 次元空間の関数として放射束の推定値 (同名のフォトン マップ自体) が計算されます。次のパスでは、目からシーンに向かって光線が追跡され、可視面が決定され、フォトン マップを使用して可視面の点の照明が推定されます。[ 24 ] [ 25 ]双方向パス トレーシングと比較したフォトン マッピングの利点は、統計的バイアスの代償として、フォトンを大幅に再利用して計算を削減できることです。
光が非常に狭い開口部を通ってシーンを照らさなければならない場合(暗い部屋で、明るい部屋に通じるドアが少し開いている場合など)、またはほとんどの点が光源に直接視線を向けられないシーン(天井照明器具やトーチなど)では、別の問題が発生します。このような場合、ごく一部の経路のみがエネルギーを伝達します。メトロポリス光輸送は、経路空間のランダム探索から始まり、エネルギーのある経路が見つかったら、近くの光線空間を探索することでこの情報を再利用する手法です。[ 26 ]

右側の画像は、上記のアルゴリズムを用いてカメラ(または目)から光源まで再帰的に生成された光線の経路の簡単な例を示しています。拡散面はあらゆる方向に光を反射します。
まず、視点から光線が生成され、ピクセルを通ってシーンへとトレースされ、そこで拡散面に当たります。その面から、アルゴリズムは反射光線を再帰的に生成し、シーン内をトレースして別の拡散面に当たります。最後に、別の反射光線が生成され、シーン内をトレースして光源に当たり、吸収されます。ピクセルの色は、最初の拡散面と2番目の拡散面の色、および光源から放出される光の色によって決まります。たとえば、光源が白色光を放出し、2つの拡散面が青色の場合、結果として得られるピクセルの色は青色になります。

レイ・トレーシングの原理を理解するために、光線と球体の交点を求める方法を考えてみましょう。これは、線と球体の交点を求めるための数学的な計算と、それに続くピクセルの色を決定する計算の仕組みです。もちろん、レイ・トレーシングの一般的なプロセスにはもっと多くの要素がありますが、これは使用されるアルゴリズムの一例を示しています。
ベクトル表記では、中心が の球の方程式は次のようになります。半径は
点から始まる光線上の任意の点方向を定めて(ここは単位ベクトルです) は次のように書くことができます
どこその距離はそして我々の問題では、、、(例えば光源の位置)、そして私たちは見つける必要があるしたがって、:
させて簡略化のため、
dが単位ベクトルであることを知っていれば、次のようなちょっとした簡略化が可能になります。
この二次方程式には解があります
2 つの値この方程式を解くことで得られるのは、次の2つです。これらは、光線が球面と交わる点です。
負の値は光線上にはなく、反対側の半線(つまり、から始まる線)上にあります。反対方向)。
平方根の中の量(判別式)が負の場合、光線は球と交わらない。
ここで、少なくとも正の解が存在すると仮定し、最小値とします。さらに、球がシーン内で光線と交差する最も近い物体であり、反射性物質でできていると仮定します。光線がどの方向に反射されるかを求める必要があります。反射の法則によれば、反射角は入射光線と球の法線との間の入射角と等しく、反対方向になります。
球面の法線は単純に
どこは、以前に見つけた交点です。反射方向は、反射によって見つけることができます。に関してつまり
したがって、反射光線は次の式で表されます。
あとは、後者の光線と視野との交点を計算して、反射光線が当たるピクセルを取得するだけです。最後に、このピクセルに適切な色を設定します。この際、元の光源の色と球体の色が反射によってどのように組み合わされるかを考慮します。
適応型深度制御とは、計算された強度が一定の閾値を下回ったときに、レンダラーが反射/透過光線の生成を停止することを意味します。常に最大深度を設定する必要があります。そうしないと、プログラムは無限の数の光線を生成してしまうからです。ただし、表面の反射率が高くない場合は、必ずしも最大深度まで到達する必要はありません。これをテストするために、レイトレーサーは光線を追跡する際に、グローバル係数と反射係数の積を計算して保持する必要があります。
例:一連の表面に対して Kr = 0.5 とします。すると、最初の表面からの最大寄与は 0.5 となり、2 番目の表面からの反射では 0.5 × 0.5 = 0.25、3 番目の表面では 0.25 × 0.5 = 0.125、4 番目の表面では 0.125 × 0.5 = 0.0625、5 番目の表面では 0.0625 × 0.5 = 0.03125 となります。さらに、1/D2 のような距離減衰係数を導入すると、強度寄与も減少します。
透過光線の場合も同様のことができますが、その場合は物体を通過する距離によって強度がさらに急速に低下します。この例として、Hall & Greenberg は、非常に反射率の高いシーンでも、最大深度 15 でこれを使用すると、平均レイツリー深度が 1.7 になることを発見しました。[ 27 ]
オブジェクトのグループをバウンディングボリューム階層(BVH)のセットで囲むことで、レイトレーシングに必要な計算量を減らすことができます。まず、発射されたレイがバウンディングボリュームと交差するかどうかがテストされ、交差がある場合は、レイがオブジェクトに当たるまでボリュームが再帰的に分割されます。最適なバウンディングボリュームの種類は、基となるオブジェクトの形状によって決まります。たとえば、オブジェクトが細長い場合、球体はボックスに比べて主に空隙を囲むことになります。また、ボックスは階層的なバウンディングボリュームを生成しやすいという利点もあります。
このような階層システムを使用すると(慎重に実装されていると仮定すると)、交差計算時間はオブジェクト数に対する線形依存性から、線形と対数の中間の依存性に変化することに注意してください。これは、理想的な場合、各交差テストで可能性が2つに分割され、バイナリツリー型の構造になるためです。後述する空間分割法は、これを実現しようとします。さらに、この高速化構造により、レイトレーシング計算の出力が依存するようになります。つまり、レイ交差計算の複雑さは、シーン内のオブジェクト数だけでなく、実際にレイと交差するオブジェクトの数にも依存します。
ケイとカジヤは、階層的境界ボリュームに求められる特性のリストを提示している。
対話型レイトレーシングの最初の実装は、 1982年に大阪大学工学部で大村浩一教授、白川功教授、川田徹教授が50名の学生とともに構築したLINKS-1コンピュータグラフィックスシステムでした。これは、 514個のマイクロプロセッサ(Zilog Z8001が257個、 iAPX 86が257個)を搭載した超並列処理コンピュータシステムで、高速レイトレーシングによる3Dコンピュータグラフィックスに使用されました。日本情報処理学会によると、「3D画像レンダリングの中核は、与えられた視点、光源、およびオブジェクトの位置から、レンダリングされた表面を構成する各ピクセルの輝度を計算することです。LINKS-1システムは、レイトレーシングを使用して各ピクセルを独立して並列処理できる画像レンダリング手法を実現するために開発されました。高速画像レンダリング専用の新しいソフトウェア手法を開発することで、LINKS-1は非常にリアルな画像を高速にレンダリングすることができました。」これは、コンピュータグラフィックスのみで作成された、初期の3Dプラネタリウムのような天体ビデオを作成するために使用されました。このビデオは、1985年のつくば国際博覧会の富士通パビリオンで展示されました。[ 28 ]これは、1982年のエバンス&サザーランドのDigistarに次いで、2番目にそのようなことをしたシステムでした。LINKS -1は、1984年に設計者によって世界で最も強力なコンピュータであると主張されました。[ 29 ]
次のインタラクティブなレイトレーサーであり、「リアルタイム」とラベル付けされた最初のものとして、2005年のSIGGRAPHコンピュータグラフィックス会議で、マイク・ムースが1986年にBRL-CADソリッドモデリングシステム用に開発したREMRT/RTツールが評価されました。1987年にUSENIXで最初に公開されたBRL-CADレイトレーサーは、レンダリング性能で毎秒数フレームを達成した並列ネットワーク分散レイトレーシングシステムの初期実装でした。[ 30 ]この性能は、BRL-CADの高度に最適化されながらもプラットフォームに依存しないLIBRTレイトレーシングエンジンと、汎用ネットワーク上の複数の共有メモリ並列マシンでソリッド暗黙CSGジオメトリを使用することによって達成されました。REMRT/RTツールを含むBRL-CADのレイトレーサーは、現在もオープンソースソフトウェアとして利用可能であり、開発が続けられています。[ 31 ]
それ以来、スタンドアロンのデスクトップ構成でさまざまな目的のためにリアルタイム速度でレイ トレーシングを実装するための相当な努力と研究が行われてきました。これらの目的には、デモシーン制作、コンピュータ ゲームやビデオゲーム、画像レンダリングなどのインタラクティブ 3D グラフィックス アプリケーションが含まれます。1990年代後半から、趣味のデモ プログラマーによって、レイ トレーシングに基づくリアルタイム ソフトウェア 3D エンジンがいくつか開発されています。 [ 32 ]
1999年、スティーブン・パーカー率いるユタ大学のチームが、1999年のインタラクティブ3Dグラフィックスシンポジウムでインタラクティブレイトレーシングをライブで実演した。彼らは3500万個の球体モデルを512×512ピクセルの解像度でレンダリングし、60個のCPUで毎秒約15フレームで動作させた。[ 33 ]
Open RTプロジェクトは、インタラクティブな3Dグラフィックスにおける現在のラスタライズベースのアプローチに代わるものとして、レイトレーシング用に高度に最適化されたソフトウェアコアとOpenGLに似たAPIを提供しました。ザールラント大学のSven Woop氏が開発した実験的なレイ処理ユニットなどのレイトレーシングハードウェアは、レイトレーシングにおける計算負荷の高い処理の一部を高速化するように設計されました。
ビデオゲームがリアルタイムでグラフィックをレイトレーシングできるというアイデアは、2000年代後半にメディアの注目を集めました。その頃、ダニエル・ポールという研究者が、グラフィックス教授のフィリップ・スルサレックの指導の下、ドイツのエアランゲン大学とザールラント大学と協力して、 Quake IIIとQuake IVに彼自身がプログラミングしたエンジンを搭載し、ザールラント大学がCeBIT 2007でそれをデモンストレーションしました。[ 34 ]ザールラント大学の支援者であるインテルは、ポールの成果に感銘を受け、彼を雇用し、レイトレーシンググラフィックスに特化した研究プログラムに着手しました。インテルは、このプログラムがプロセッサのコア数を増やす正当な理由になると考えました。[ 35 ] : 99–100 [ 36 ] 2008 年 6 月 12 日、インテルは、レンダリングにレイ トレーシングを使用し、基本的な HD (720p) 解像度で動作するEnemy Territory: Quake Wars の特別バージョンである Quake Wars : Ray Tracedをデモしました。ETQWは、2.93 GHz で動作する 16 コア (4 ソケット、4 コア) Xeon Tigerton システムで、毎秒 14~29 フレームで動作しました 。[ 37 ]
SIGGRAPH 2009 で、Nvidia は、Nvidia GPU 上でリアルタイム レイ トレーシングを行うための無料 API であるOptiXを発表しました。この API は、レイ トレーシング パイプライン内に 7 つのプログラム可能なエントリ ポイントを公開し、カスタム カメラ、レイ プリミティブの交差、シェーダー、シャドウイングなどを可能にします。この柔軟性により、双方向パス トレーシング、メトロポリス ライト トランスポート、および末尾再帰では実装できない他の多くのレンダリング アルゴリズムが可能になります。 [ 38 ] OptiX ベースのレンダラーは、Autodesk Arnold、Adobe AfterEffects、Bunkspeed Shot、Autodesk Maya、3ds max、およびその他多くのレンダラーで使用されています。
2014年、 Q-GamesとJapan Studioが開発したPlayStation 4用ゲーム「The Tomorrow Children」のデモでは、 Q-Gamesが開発した新しいライティング技術、特にリアルタイムでライティングをシミュレートし、スクリーン空間反射ではなくよりリアルな反射を使用するカスケードボクセルコーンレイトレーシングが披露された。[ 39 ]
Nvidiaは、ハードウェアアクセラレーションによるレイトレーシングを可能にするTuringアーキテクチャに基づいて、2018年9月にGeForce RTXおよびQuadro RTX GPUを発表しました。Nvidiaのハードウェアは、一般に「RTコア」と呼ばれる独立した機能ブロックを使用します。このユニットは、サイズ、レイテンシ、およびプロセッサコアへのインターフェースにおいて、テクスチャユニットにいくらか似ています。このユニットは、BVHトラバーサル、圧縮BVHノードの解凍、レイAABB交差テスト、およびレイ三角形交差テストを備えています。[ 40 ] GeForce RTXは、2080および2080 Tiモデルの形で、リアルタイムでレイトレーシングを実行できる最初の消費者向けグラフィックカードブランドとなり、[ 41 ] 2018年11月には、Electronic ArtsのBattlefield Vが、Microsoftの新しいAPIであるDirectX Raytracingを介して実現されるレイトレーシング機能を活用する最初のゲームとなりました。[ 42 ]すでにRadeon ProRenderを通じてOpenCL上でインタラクティブなレイトレーシングを提供していたAMDは、[ 43 ] [ 44 ] 2020年10月にオンラインイベントで、ハードウェアアクセラレーションによるレイトレーシングをサポートする第2世代Navi GPUであるRadeon RX 6000シリーズを発表しました。 [ 45 ] [ 46 ] [ 47 ] [ 48 ] [ 49 ]その後、このような方法でグラフィックをレンダリングするゲームが登場し、これはハードウェアの改善と、より多くのAPIとゲームエンジンをこの技術と互換性を持たせるための努力によるものとされています。[ 50 ]現在の家庭用ゲーム機は、リアルタイムのレイトレーシング効果のためにGPUに専用のレイトレーシングハードウェアを実装しており、これは第9世代ゲーム機PlayStation 5、Xbox Series X、Series Sから始まりました。[ 51 ] [ 52 ] [ 53 ] [ 54 ] [ 55 ]
2021年11月4日、Imagination Technologiesはハードウェアアクセラレーションによるレイトレーシングを搭載したIMG CXT GPUを発表しました。[ 56 ] [ 57 ] 2022年1月18日、Samsungはハードウェアアクセラレーションによるレイトレーシングを搭載したExynos 2200 AP SoCを発表しました。 [ 58 ] 2022年6月28日、Armはハードウェアアクセラレーションによるレイトレーシングを搭載したImmortalis-G715を発表しました。 [ 59 ] 2022年11月16日、Qualcommはハードウェアアクセラレーションによるレイトレーシングを搭載したSnapdragon 8 Gen 2を発表しました。[ 60 ] [ 61 ]
2023 年 9 月 12 日、Apple はiPhone 15 Pro モデル向けのA17 Pro チップを皮切りに、チップ設計にハードウェア アクセラレーションによるレイ トレーシングを導入しました。 [ 62 ] [ 63 ]同年後半、Apple はハードウェア アクセラレーションによるレイ トレーシングをサポートする M3 ファミリーのプロセッサをリリースしました。[ 64 ]現在、このテクノロジーはMetal APIを介して iPhone、iPad、Mac コンピュータで利用可能です。Apple は、電話の以前のソフトウェア ベースのレイ トレーシングと比較して最大 4 倍のパフォーマンス向上を報告しており[ 63 ]、M3 と M1 チップを比較すると最大 2.5 倍高速化しています。[ 64 ]ハードウェア実装には、アクセラレーション構造のトラバーサルと専用のレイ ボックス交差が含まれており、API は RayQuery (インライン レイ トレーシング) と RayPipeline 機能をサポートしています。[ 65 ]
光線追跡問題の特定の定式化に対して、さまざまな複雑性の結果が証明されています。特に、光線追跡問題の決定バージョンが次のように定義される場合[ 66 ] – 光線の初期位置と方向、およびある固定点が与えられたとき、光線は最終的にその点に到達するかどうか、という問題の場合、参照論文では次の結果が証明されています。
{{cite web}}: CS1 maint: 数値名: 著者リスト (リンク){{cite web}}: CS1 maint: 複数の名前: 著者リスト (リンク)