レイトレーシングとは
レイトレーシング(ray tracing)は「ray:光線」「tracing:追跡」の意味で「光線追跡法」と呼ばれる映像表現の技術となります。
この記事ではレイトレーシングとはどのようなものか、歴史から技術、パソコンのグラフィックボードでの実装状況などについて詳しくご紹介します。
もくじ
レイトレーシングとはどのようなものか
レイトレーシングは、光の屈折や反射などを中心に、現実世界のあらゆる影響をコンピューターで計算することで、リアルな映像を作成する技術となります。
現実世界と同様に光線の動きをシミュレーションすることにより現実に近い3D映像を作り出すことができます。
近年、パソコンのゲームにおいてレイトレーシングの用語がよく使われるようになりました。
レイトレーシングについて、3DCGにおける映像技術の歴史から、映像表現方法まで順番に紹介していきます。
レイトレーシングの歴史
レイトレーシングの手法自体は古くから存在していました。
過去において、レイトレーシングは比較的大規模なシステムで利用される傾向にありました。
理由として、膨大な計算量が必要なため、映画のCGなど、機材や予算を多く使える環境での利用に限られる場合が多かったためです。
それに対して、パソコンのゲームでの利用は「ラスタライズ法」と呼ばれる比較的計算量が少なくなる手法が採用されていました。
最近はGPUとプログラミング技術の進化により、レイトレーシングがパソコンのゲームでも利用可能なレベルになったため、パソコンのゲーム用途として注目されるようになっています。
次の章から3Dグラフィックスの歴史とともに、レイトレーシングがどのようなものかを説明していきます。
レイトレーシングに至る3Dグラフィックスの歴史
2000年代に入りWindowsがパーソナル用途やビジネス分野で世界標準になりました。
3Dグラフィックスの分野においても、マイクロソフトがリリースした「Xbox」がDirectXをベースしたことにより、3DグラフィックスはDirectXと二人三脚で進化することになりました。
そのため、DirectXの歴史を知ることは3Dグラフィックスの歴史を知ることと同一といえます。
DirectXの歴史
Windowsにおいてマルチメディアの表現機能としてDirectXの最初のバージョンはWindows 95とともにリリースされています。
その後のDirectXは発展を続けていきます。
3Dグラフィックスのエフェクトや画面効果を作り出すのに重要な「プログラマブルシェーダーのバージョン2.0(Shader Model 2.0)」が2002年にDirectXに搭載されました。
その後も、バージョンをいくつも更新しながら発展を続けていきました。
シェーダーとは
「シェーダー」とは、3次元コンピュータグラフィックスにおいて、シェーディングを行うプログラムのことです。
シェーディングの「shade」とは「次第に変化させる」「陰影・グラデーションを付ける」という意味となります。
DXRの登場
2018年にリリースされたDXR(DirectX Raytracing)は、レイトレーシングを実現するAPIセットをDirectXに取り込むものとなります。
DXRとレイトレーシングとの組み合わせ
DXRとレイトレーシング対応のGPUを組み合わせることにより、リアルタイムにレイトレーシング法によるレンダリングができるようになりました。
レイトレーシング普及前の3Dレンダリング手法は「ラスタライズ法」が中心
「ラスタライズ(rasterize)法」とは画像データを「座標」と「色」の2つで構成して表現する技術です。
3次元の物体を2次元のモニターに表示するための手法の一つとして「ラスタライズ法」が長く利用されてきました。
ラスタライズ法を知ることで、よりレイトレーシングの理解が深まりますので、ラスタライズ法について説明をしていきます。
ラスタライズ法の映像表現方法
ラスタライズ法では3次元の物体を三角形やポリゴン(多角形)を組み合わせてグラフィックスを表現します。
各ポリゴンには頂点の情報として座標、法線、色などを持ちます。
次に与えられたカメラの位置と光源の情報(位置・向き・色)と各ポリゴンの頂点の情報からスクリーンに表示される座標変換を行います。
ポリゴン単位で頂点ごとに計算した座標と色から、スクリーン上のピクセル単位に分解してシェーディング(陰影を計算してつけること)をしていきます。
座標変換では各頂点のスクリーン座標と頂点の色を計算します。
データ処理の負荷軽減のために、スクリーンに表示されない背面や視覚外となるポリゴンは除去します。
ラスタライズ法のデメリット
ラスタライズ法では与えられた3次元の物体のポリゴンをすべて計算するのではなく「スクリーンに表示されないポリゴンは処理をしないこと」により、処理の負荷を低減することが出来る手法です。
この手法はメリットでもありますが、デメリットにもなります。
カメラに映し出されない物体を処理から削除されることになるためです。
たとえば、カメラの背後に建物が存在し、建物の後ろに太陽などの光源がある場合、現実世界ではカメラの前に影が落ちてカメラの視界に入るはずです。
ラスタライズ法ではカメラの外にある物体は処理から削除してしまいます。
カメラに映らない部分は全て処理の対象外となり「カメラに映るはずの建物の影が存在しない」ことになります。
また、物体に当たった光がさらに別の物体に当たるといった「間接光」を表現することも難しい傾向があります。
これらを表現するには、ラスタライズとは別の手法を追加して表現する必要がありました。
レイトレーシング法ではこれらラスタライズ法のデメリットを克服できます。
レイトレーシング法の映像表現方法
レイトレーシングでは「人間の目に入った光の経路を逆にたどる」ことで映像をシミュレーションする技術です。
現実の世界では光源から出た光が物体にぶつかることで反射したり、屈折したりすることを繰り返して人間の目に入ります。
その意味では、現実世界の視界をシミュレーションしているのがレイトレーシングとなります。
シミュレーションの過程で影や間接光、映り込みなどを表現することが可能でとなります。
リアルな映像を表現するには、レイトレーシングでの映像表現方法が向いています。
レイトレーシング法の映像表現の手順
レイトレーシング法の処理は以下の手順で行われます。
- スクリーンのピクセルに対応する点からレイ(光線)を飛ばします。
- これによりスクリーンに届くレイのみを計算するので、スクリーンに届かないレイの計算は省略されます。
- レイが物体に衝突すると、光源の性質から色の情報を計算し表現します。
- レイが物体に衝突した点と光源との間に他の物体があった場合は、影の処理を実施します。
- レイが物体に衝突しない場合は「背景色」とします。
レイトレーシングのメリット
レイトレーシング法を使った3Dグラフィックスの表現は、現実世界をシミュレーションしたものとなり、リアルな映像表現となります。
そのため、違和感の少ない世界が表現され、ゲームの世界に没入しやすくなります。
また、レイトレーシングの描画技術によって、水面や鏡、窓などへの映り込みも表現できます。
これまでと違ったゲームが開発されユーザが新しい体験を味わうこともできます。
レイトレーシングのデメリット
レイトレーシングは、画面の表示に関係ない情報の計算をしないラスタライズ法と比べると、データの処理量は多くなります。
データの処理量が多くなってしまうと、ラスタライズ法と比べてパソコンで処理されて出力される映像情報である「フレームレート」が低下する原因となります。
レイトレーシングを使用すれば、動きのなめらかさやレスポンスが悪くなる傾向があり、「FPS」や「格闘系のゲーム」コンマ数秒が勝敗にかかわるためプレイにおいて不利となる可能性があります。
美しい映像表現はゲームの魅力となるため、可能な限りレイトレーシングによる3Dグラフィックス表現を可能にする要望が高まってきました。
そのため、グラフィックボードメーカー各社よりレイトレーシング対応のグラフィックボードが発売されるようになりました。
レイトレーシング対応グラフィクボードは、データ処理量の増加の対応、データ処理の効率化のために、グラフィックボード(GPU)の性能向上と最適化がはかられています。
レイトレーシング対応のグラフィックボード
レイトレーシング対応のグラフィックボードを紹介していきます。
グラフィックボードにはGPUというコアが存在し、GPUがレイトレーシングに対応しているグラフィックボードがレイトレーシング対応のシリーズとなります。
レイトレーシングに対応したGPUをNVIDIA社とAMD社の製品を紹介します。
NVIDA社のレイトレーシング対応GPU
NVIDIA社では「RTX 30シリーズ」と「RTX 20シリーズ」がレイトレーシングに対応しています。(※2022年6月現在)
GPUシリーズ | RTX 30シリーズ | RTX 20シリーズ |
---|---|---|
アーキテクチャ名 | NVIDIA Ampere | Turing |
ストリーミングマルチプロセッサ | FP32x2 | FP32x1 |
レイトレーシング(RT)コア | 第2世代 | 第1世代 |
Tensor コア(AI) | 第3世代 | 第2世代 |
メモリ | 最大24GBのGDDR6X | 最大11GBのGDDR6 |
AMD社のレイトレーシング対応GPU
AMD社では「Radeon RX 6000シリーズ」がレイトレーシングに対応しています。(※2022年6月現在)
GPUシリーズ | Radeon RX 6000シリーズ |
---|---|
アーキテクチャ名 | RDNA2 |
ストリーミングマルチプロセッサ | 768~5120 |
Ray Accelerators | 12~80 |
メモリ | 最大16GBのGDDR6 |
まとめ
レイトレーシングについて「ラスタライズ法」をはじめとするグラフィックスの歴史から映像表現方法の技術、対応するグラフィックボードまでを紹介してきました。
リアルな映像表現においてレイトレーシングは欠かせない技術なっています。
どのような技術で、どのようなメリットがあるかだけでも、レイトレーシングについて、知っておくとグラフィックボードなどの製品選びに役立つでしょう。
グラフィックボードの性能は「グラフィックボード性能比較ページ」でご確認ください。
グラフィックボードの製品については以下のページをご確認ください。