2013-02-20 3 views
3

Я просто пытаюсь передать cvMat текстуру, которая генерируется фрагментарным шейдером, на экране ничего не появляется, я не знаю, где проблема, это в драйвере или glreadPixels .. Я только что загрузил изображение TGA, в фрагментарный шейдер, а затем текстурировал квадроцикл, я хотел передать эту текстуру в cvMat, поэтому я использовал glReadPixesl, затем создавал новую текстуру и рисовал ее на квадроцикле, но ничего появляется.Чтение из фреймбуфера GLSL в OpenCV

Обратите внимание, что на каждом кадре выполняется следующий код.

cv::Mat pixels; 
    glPixelStorei(GL_PACK_ALIGNMENT, (pixels.step & 3) ? 1 : 4); 
    glReadPixels(0, 0, 1024, 1024, GL_RGB, GL_UNSIGNED_BYTE, pixels.data); 

    glEnable(GL_TEXTURE_2D); 
    GLuint textureID; 
    glGenTextures(1, &textureID); 
     //glDeleteTextures(1, &textureID); 

    // Create the texture 
    glTexImage2D(GL_TEXTURE_2D,  // Type of texture 
       0,     // Pyramid level (for mip-mapping) - 0 is the top level 
       GL_RGB,   // Internal colour format to convert to 
       1024,   // Image width i.e. 640 for Kinect in standard mode 
       1024,   // Image height i.e. 480 for Kinect in standard mode 
       0,     // Border width in pixels (can either be 1 or 0) 
       GL_RGB, // Input image format (i.e. GL_RGB, GL_RGBA, GL_BGR etc.) 
       GL_UNSIGNED_BYTE, // Image data type 
       pixels.data);  // The actual image data itself 

    glActiveTexture (textureID); 
    glBindTexture (GL_TEXTURE_2D,textureID); 
    glDrawElements (GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, indices); 
+0

Пожалуйста, сделайте для меня что-то ясное. Вы пытались создать Mat из текстуры OpenGL, верно? –

+0

Я пытался создать текстуру из математики –

+0

Хорошо. Не могли бы вы рассказать мне, что вы делаете в первых двух строках: 'glPixelStorei()' и 'glReadPixels()'. Мне кажется, что вы копируете текстуру OpenGL в пиксели. –

ответ

2

textureID выглядит как incomplete texture.

Комплект GL_TEXTURE_MIN_FILTER до GL_NEAREST или GL_LINEAR.

Или поставьте полный комплект мипмапов.

Смежные вопросы