2

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 のピクセル形式はウィンドウ/ビットマップと一致する必要がありますか? 寸法はどうですか?

ありがとう、
アレックス

4

2 に答える 2

1

実際には、OpenGLとCUDAを一緒に使用する方法の例があります。SimpleGLの例を見てください。

于 2011-03-25T16:46:51.140 に答える
0

次の例をご覧ください。

https://github.com/nvpro-samples/gl_cuda_interop_pingpong_st

于 2015-05-08T22:11:29.637 に答える