Как работать с текстурами текстур куба OpenGL в CUDA?
Когда вы хотите использовать текстуры OpenGL в ядре CUDA, одна из вещей, которые нужно сделать, - это получить массив CUDA из зарегистрированного изображения и отображаемого ресурса, в данном случае текстуры. В API-интерфейсе драйвера выполняется вызов cuGraphicsSubResourceGetMappedArray
, что в случае 2D-текстуры не является проблемой. Но когда речь идет о вышеупомянутой карте куба, третьим параметром этой функции требуется переименование лица (например, CU_CUBEMAP_FACE_POSITIVE_X
). Таким образом, возникают некоторые вопросы - когда кто-то передает такое перечисление, то возвращенный массив текстур будет содержать только данные этой конкретной грани, верно? Затем, как использовать текстуру куба в целом, выполнить отображение куба, а также:
color = texCube(cubeMap, x, y, z);
Или это невозможно сделать в ядре CUDA, и нужно использовать 2D-текстуры с правильными вычислениями и выборкой в коде пользователя?