Cuda 3.2 でいくつかの作業を行い、OpenGL でいくつかの作業を行う必要がある DLL を作成しています。OpenGL は、私の Cuda コードが読み込んで変更する必要があるいくつかのグレースケール イメージをレンダリングし、OpenGL にテクスチャとして返します。そのためには PBO を作成する必要があると思います。私は以前にいくつかの基本的な OpenGL の作業を行ったことがありますが、拡張機能を使用したことはありません。それが私の問題です。コード。私が試したサンプルはどれも機能しません (GTX470 である私の vid カードはそれをサポートすると確信しています)
具体的な質問:
1. nvidia opengl sdk をインストールしました。拡張機能にアクセスするには、glew.h と wglew.h を使用する必要がありますか?
2. 私の DLL には UI がありません。非表示のウィンドウを作成する必要がありますか?それとも、オフスクリーン レンダリング コンテキストを作成する簡単な方法はありますか?
3. GL_RED_8UI フォーマットを使用してグレースケール PBO を作成できますか? cuda と gl の両方がそれに満足するでしょうか? cuda プログラミング マニュアルの opengl 相互運用セクションを読んだところ、GL_RGBA_8UI は OpenGL 3.0 の機能であるため、ピクセル シェーダーでのみ使用できると書かれていましたが、それが 1 チャネル フォーマットに適用されるかどうかはわかりませんでした。1 チャンネルのフロートも私の目的には機能します。
4. これはかなり簡単にできると思っていましたが、本当に何百行ものコードが必要ですか?
編集:
HBITMAP にアタッチされた OpenGL コンテキストを作成するコードがあります。ビットマップ レンダリング コンテキストを作成してから、それに PBO をアタッチする必要がありますか? それとも、CPU メモリにもレンダリングすることで速度が低下しますか? 見えないウィンドウを作成し、それに PBO をアタッチする方がよいでしょうか? また、PBO のピクセル形式はウィンドウ/ビットマップと一致する必要がありますか? 寸法はどうですか?
ありがとう、
アレックス