基本概念
レイトレーシングの基本的な考え方は極めてシンプルです。レンダリングエンジンは、ディスプレイの各ピクセルに対して、レンダリング対象のシーンの要素と交差するまで直線的に伝播するレイを投影します。この最初の交差位置に基づいて、交差する要素の表面積に応じてピクセルの色を決定します。
しかし、これだけではリアルなレンダリングを実現するには不十分です。そのためには、ピクセルの照明も決定する必要があります。これは、シーンを構成する様々なオブジェクトの可視性を決定する一次光線とは対照的に、二次光線を照射することによって行われます。シーンの照明効果を計算するために、二次光線は様々な光源に向けて照射されます。これらの光線がオブジェクトによって遮られる場合、そのオブジェクトは光源の影の中にいることになります。そうでない場合、その光源は代わりにそのオブジェクトの照明に影響を与えます。光源に到達したすべての二次光線の合計が、シーン要素に当たる光の量を決定します。
しかし、これではまだ全体像ではありません。よりリアルなレンダリングを実現するには、材質の反射率と屈折率を考慮する必要があります。言い換えれば、一次光線が当たった地点で反射する光の量と、材質を通過する光の量を考慮する必要があります。ここでも、光線は放出され、ピクセルの最終的な色を決定します。
まとめると、レイにはいくつかの種類があります。プライマリレイは可視性を決定するために使用され、ラスタライズで使用されるZバッファのようなものです。次に、セカンダリレイがあります。セカンダリレイは以下の要素で構成されます。
- 影の光線
- 反射光線
- 屈折光線
このレイトレーシングアルゴリズムは、30年前に発明した研究者ターナー・ウィッテッドの研究成果です。それまで、当時のレイトレーサーは一次光線のみを使用していました。そのため、ウィッテッドによる改良は、シーンレンダリングにおけるリアリティの向上に向けた大きな一歩となりました。
物理学の授業を受けたことがある方なら、レイトレーシングの仕組みが現実世界で起こっていることと全く逆であることに気づいたでしょう。中世に広く信じられていた考えとは異なり、私たちの目は光線を発するのではなく、周囲の様々な物体から反射された光源からの光線を受け取ります。実際、最初のレイトレーシングアルゴリズムはこのように動作しました。
しかし、この手法の主な欠点は、計算コストが非常に高かったことです。光源ごとに数千もの光線を投射する必要があり、その多くは生成するシーンに影響を与えませんでした(画像平面と交差しないため)。最近開発されたレイトレーシングアルゴリズムは、基本アルゴリズムを最適化したもので、光線が現実とは逆方向に伝播することから、逆方向レイトレーシングと呼ばれています。
Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。