-2

パイプラインの一部がGPUによって処理されるため、OpenGLが高速(相対)フレームレートを達成できる場合、GPUなしで、つまり純粋にソフトウェアで実行されると、OpenGLはどのように機能しますか?レイトレーシングと同じ注文速度でしょうか?もっとゆっくり?

GPUはレイトレーシングアルゴリズムの一部をサポートできますか?レイトレーシングは、将来、インタラクティブなシーンやゲームで使用できるほど速くなる可能性がありますか?

4

2 に答える 2

3

OpenGLとレイトレーシングをそのように比較することはできません。OpenGLはラスタライザー描画APIです。つまり、単一の点、線、三角形を画面に配置するだけです。シーンやコヒーレントな幾何学的オブジェクトのようなものはありません。

ソフトウェアに実装されている場合でも、OpenGLのようなラスタライザーは非常に高速で非常に簡単です。ラスターライザーによるレンダリングの複雑さは、主に入力ジオメトリの量に依存します。すべてがローカルで行われるため(=一度に1つの三角形)、キャッシュにも非常に適しています。

レイトレーシングはグローバルレンダリングモデルです。したがって、シーン全体をメモリに保持する必要があり、シーンにキャストされるすべての光線について、理論的にはシーンのすべての部分と相互作用できます。通常、インタラクションのカットオフは事前設定されています。つまり、フレームのレンダリングの全体的な複雑さは、取得されたサンプルの数、つまりレンダリングされたピクセルにのみ依存します。

于 2012-06-06T08:02:20.423 に答える
1

ほとんどのシーンでは、レイトレーシングは、標準のOpenGLレンダリングなどのラスタライズベースの方法よりも本質的に作業が多く、したがって低速です。

一部のアプリケーションでは、その逆です。たとえば、適切な種類の検索データ構造に多数の球を保存している場合、それぞれの上に錐台にあるすべての球を描画するよりも、シーン全体に光線を発射する方がおそらく高速です。他の。

GPUは現在、レイトレーシングアルゴリズムをサポートしており、数年前からサポートしています。通常、アルゴリズムは自分で実装する必要があります。OpenGLで得られるラスタライズ用の事前にパッケージ化されたアルゴリズムのようなものはありません。nVidiaのCUDASDKに例があると確信しています。リアルタイム3Dグラフィックスの多くのハイエンドエフェクトは、純粋なレイトレーシングアルゴリズムでなくても、いくつかのレイをトレースします。

最適化の方法についてあまり知識がなくても、標準のGPUでリアルタイムに実行される単純なシーン用の単純なレイトレーサーを作成できます。

より高度な方法のための「リアルタイムレイトレーシング」に関する科学論文のためのグーグル。nVidiaのCUDASDKをご覧ください。たぶんAMDにも例があります。

于 2012-06-06T08:27:53.023 に答える