Cuda Render Buffer Interop для компонента глубины

То, что я пытаюсь сделать, это использовать OpenGL для выполнения некоторого рендеринга, а затем использовать CUDA для выполнения некоторой пост-обработки только для чтения (вычислений) непосредственно на визуализированных компонентах RGB и глубины без копирования данных в PBO.

Для этого я создаю FBO и прикрепляю к нему два RBO (одно для RGBA и одно для DEPTH).

Затем я вызываю cudaGraphicsGLRegisterImage для каждого RBO с GL_RENDERBUFFER в качестве параметра. Для цвета RBO cudaGraphicsGLRegisterImage возвращает cudaSuccess, но для глубины RBO я получаю cudaErrorInvalidValue.

Я где-то читал на форумах, что взаимодействие буфера рендеринга CUDA для компонента глубины в настоящее время не поддерживается nVidia, хотя оно хорошо представлено в документации.

Я использую CUDA Toolkit 5.0, и у меня есть карта Quadro 2000.

Кому-нибудь удалось это сделать и как?

Вот некоторые выдержки из кода:

glGenRenderbuffers(1, &rbo_color);
glBindRenderbuffer(GL_RENDERBUFFER, rbo_color);
glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA, WIDTH, HEIGHT);
glBindRenderbuffer(GL_RENDERBUFFER, 0);

if (cudaGraphicsGLRegisterImage(&resource_color, rbo_color, GL_RENDERBUFFER, cudaGraphicsMapFlagsReadOnly) != cudaSuccess)
    fprintf(stderr, "Error in registering rbo color with cuda\n");

glGenRenderbuffers(1, &rbo_depth);
glBindRenderbuffer(GL_RENDERBUFFER, rbo_depth);
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT32F, WIDTH, HEIGHT);
glBindRenderbuffer(GL_RENDERBUFFER, 0);

if (cudaGraphicsGLRegisterImage(&resource_depth, rbo_depth, GL_RENDERBUFFER, cudaGraphicsMapFlagsReadOnly) != cudaSuccess)
    fprintf(stderr, "Error in registering rbo depth with cuda\n");

1 ответ

Решение

У меня не было никакого успеха, связывающего сам буфер глубины. Одним из способов решения этой проблемы является рендеринг значения пикселя глубины в цветовой буфер и связывание цветового буфера, как вы делаете. Вам нужно будет написать свой собственный шейдер для достижения этой цели.

Другие вопросы по тегам