2014-02-19 2 views
0

Я использую Qt 4.7 ти OPENGL ES2, то Hardwar является PowerVR, является SGX SDK 4,8Qt OpenGL ES2 glBindTexture потерпели неудачу, когда размер изображения большой

glBindTexture(GL_TEXTURE_2D, bindTexture(m_myPixmapOfPic, GL_TEXTURE_2D)); 

Когда размер изображения составляет 512 * 256, он работает well.When картинка 768 * 512, показывает черный, что означает сбой. Я пытаюсь найти интерфейс и увеличить размер буфера текстуры. Но Qt не поддерживает такой интерфейс. Интерфейсы OpenGL es2 также не упоминают эту проблему.

QVector<QVector3D> vertices.append 
    QVector<QVector2D> texCoords.append 

glBindTexture(GL_TEXTURE_2D, bindTexture(m_myPixmapOfPic, GL_TEXTURE_2D)); 

GLSL:gl_FragColor = texture2D(texture, v_texcoord) //simple bind 

ответ

1

Это не связано с размером буфера. Возможно, вам нужно будет указать изображение размера «два-два» (т.е. 2^n - 2,4,16,32,64,128,256, 512, 1024 и т. Д.) В качестве текстуры. В качестве альтернативы HW необходимо поддерживать расширения для NON-мощности двух.

+0

Во-первых, измените img на 1024 * 512, он работает –

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

  • Нет связанных вопросов^_^