CUDAとVBO
をテンプレートにして作成
[
トップ
|
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
*CUDAとVBO [#jb3bbe3b]
OpenGLで確保したVBOをCUDAから使うことができる.
VBOをCUDAに登録する関数は以下.
#code(C,nonumber){{
cudaError_t cudaGLRegisterBufferObject(GLuint bufObj);
cudaError_t cudaGLUnregisterBufferObject(GLuint bufObj);
}}
使用する際のマッピング関数は以下.
#code(C,nonumber){{
cudaError_t cudaGLMapBufferObject(void **devPtr, GLuint b...
cudaError_t cudaGLUnmapBufferObject(GLuint bufObj);
}}
[[cudaGLRegisterBufferObject:http://developer.download.nv...
でVBOを登録し,使用する前に
[[cudaGLMapBufferObject:http://developer.download.nvidia....
でマップさせ,使い終わったら
[[cudaGLUnmapBufferObject:http://developer.download.nvidi...
VBOを破棄する際には,
[[cudaGLUnregisterBufferObject:http://developer.download....
で登録を外してからOpenGL側で破棄処理をする.
#code(C){{
GLuint vbo;
glGenBuffers(1, &vbo);
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glBufferData(GL_ARRAY_BUFFER, size, 0, GL_DYNAMIC_DRAW);
glBindBuffer(GL_ARRAY_BUFFER, 0);
// VBOをCUDAに登録
cutilSafeCall(cudaGLRegisterBufferObject(vbo));
float *dPtr;
cutilSafeCall(cudaGLMapBufferObject(&dPtr, vbo));
// 処理
cutilSafeCall(cudaGLUnmapBufferObject(vbo));
// VBOのCUDA登録を外す
cutilSafeCall(cudaGLUnregisterBufferObject(vbo));
glDeleteBuffers(1, (const GLuint*)&vbo);
}}
マップされている状態のVBOをOpenGLから用いることはできない...
終了行:
*CUDAとVBO [#jb3bbe3b]
OpenGLで確保したVBOをCUDAから使うことができる.
VBOをCUDAに登録する関数は以下.
#code(C,nonumber){{
cudaError_t cudaGLRegisterBufferObject(GLuint bufObj);
cudaError_t cudaGLUnregisterBufferObject(GLuint bufObj);
}}
使用する際のマッピング関数は以下.
#code(C,nonumber){{
cudaError_t cudaGLMapBufferObject(void **devPtr, GLuint b...
cudaError_t cudaGLUnmapBufferObject(GLuint bufObj);
}}
[[cudaGLRegisterBufferObject:http://developer.download.nv...
でVBOを登録し,使用する前に
[[cudaGLMapBufferObject:http://developer.download.nvidia....
でマップさせ,使い終わったら
[[cudaGLUnmapBufferObject:http://developer.download.nvidi...
VBOを破棄する際には,
[[cudaGLUnregisterBufferObject:http://developer.download....
で登録を外してからOpenGL側で破棄処理をする.
#code(C){{
GLuint vbo;
glGenBuffers(1, &vbo);
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glBufferData(GL_ARRAY_BUFFER, size, 0, GL_DYNAMIC_DRAW);
glBindBuffer(GL_ARRAY_BUFFER, 0);
// VBOをCUDAに登録
cutilSafeCall(cudaGLRegisterBufferObject(vbo));
float *dPtr;
cutilSafeCall(cudaGLMapBufferObject(&dPtr, vbo));
// 処理
cutilSafeCall(cudaGLUnmapBufferObject(vbo));
// VBOのCUDA登録を外す
cutilSafeCall(cudaGLUnregisterBufferObject(vbo));
glDeleteBuffers(1, (const GLuint*)&vbo);
}}
マップされている状態のVBOをOpenGLから用いることはできない...
ページ名: