2012-05-28 4 views
2

여기 OpenGL 텍스처가 있습니다 : GLuint tex1;OpenGL 텍스처를 CUDA 텍스처로 변환하는 방법은 무엇입니까?

는 지금은 CUDA에서 검색 테이블로 tex1를 사용하려면, 그래서 어쩌면 내가 CUDA 텍스처로 번역합니다. 우리가 알다시피

는 CUDA 텍스처, 질감 <>의 유형과 같은 CUDABindTextureToArray에서 온다.

그렇다면 OpenGL 텍스처에서 CUDA 텍스처를 얻는 방법은 무엇입니까?

+5

CUDA C 프로그래밍 가이드의 3.2.11 "그래픽 상호 운용성"섹션을 참조하십시오. 또한, 최근에 CUDA에 관해 많은 질문을 던졌습니다. 질문을 포함하는 댓글이 응답되지 않았거나 유효한 답변이 수락되지 않은 경우 등. 이전 질문에 대한 해결책을 찾은 경우 자신의 답변을 게시하고 수락합니다. 이것은 문제가 해결되었음을 나타내고 나중에 나타날 수있는 다른 사람들을위한 정보를 남깁니다. 스택 오버플로는 편도 거리가 아닙니다 .... – talonmies

+0

감사합니다. – TonyLic

답변

5

먼저 텍스쳐를 cudaGraphicsGLRegisterImage 기능으로 등록해야합니다.

cudaGraphicsResource *resource; 
cutilSafeCall(cudaGraphicsGLRegisterImage(&resource,text1,GL_TEXTURE_2D, cudaGraphicsMapFlagsNone)); 

그럼 당신은이 자원에 배열 참조를 얻을 수 있습니다.

cudaArray* array; 

cudaGraphicsMapResources (1, &resource, 0); 
cudaGraphicsSubResourceGetMappedArray (&array, resource, 0, 0); 

그 후에 당신은 당신의 array를 사용할 수 있으며, CUDA 텍스처에 바인딩.

관련 문제