API
OpenGL は (ある意味で) 最も移植性の高いレンダリング API であり、少なくとも現在のグラフィックス ハードウェア機能を最新の状態に保つチャンスがありますが、これは定期的にフラストレーションのかなりの部分を生み出します. PC 用にコーディングする場合は、ほぼ同じ機能を提供する DirectX10/11 を使用できます。DirectX はドライバーのオーバーヘッドが少し少ないのに対し、OpenGL はステート マシンであり、プログラマーから多くのことを隠しています。「asm」によって glsl または hlsl シェーダーを作成することを意味しない限り、アセンブラーで同じことを行うことでフラストレーションが少なくなるのをどのように見ているのかわかりません:)
Svo
現在、GTX780 で 30 fps で 62.000 個のボクセル キューブをレンダリングする OpenGL SVO ビジュアライザーを作成しましたが、私のセットアップは最適ではありません。つまり、インスタンス化されたレンダリング、トライ ストリップ、クワッド、または送信のみを行うジオメトリシェーダー ベースのアプローチをまだ使用していません。ボックスの中心座標で、シェーダーで完全にビジュアルを生成します。OpenGL は、レンダリングを最適化する方法のスタック全体を提供しており、ハードウェア アクセラレーションを使用しています。
相互運用
openGL と openCL の間の相互運用性は簡単で、CUDA は openGL バッファとも非常によく統合されています。これらのセットアップは両方とも同じコード ベースで動作しています。3 番目の方法は、計算シェーダー (opengl 4.3+) を使用することです。そのため、キューブを処理するために openCL も CUDA も必要ありません。
svo を介してレイを送信する予定はありますか、それとも単にアウトラインを背面からカリングしてレンダリングするか、何か特別なことをする予定ですか?