2016-05-05 4 views
-1

У меня проблема, я хочу связать текстуру на простом кубе, но моя текстура не отображается, и я действительно не знаю, что я сделал неправильно.OpenGL no texture

это текстура часть моей программы:

void loadTextureSTD(char * path, int size, int size_x, int size_y) 
{ 
    glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); 

    glGenTextures(1, &textureID); 

    glBindTexture(GL_TEXTURE_2D, textureID); 

    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 

    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 


    texture = loadImageSTD(path, size, size_x, size_y); 

    glTexImage2D(
      GL_TEXTURE_2D, 0, GL_RGB, 
      size_x , size_y, 0, GL_RGB, 
      GL_UNSIGNED_BYTE, texture 
     ); 

} 

это часть дисплея:

 glTexCoordPointer(2, GL_FLOAT, 0, vector_array_p0); 
     glVertexPointer(3, GL_FLOAT, 0, vector_array_p0); GL_VERTEX_ARRAY (p0) 
     glNormalPointer(GL_FLOAT, 0, normals_array_p0); 
     glDrawElements(GL_TRIANGLES, animation0, GL_UNSIGNED_INT, face_array_p0); 

Это мой результат (Light на 0, 10, 0): result

+1

Редактировать в [mcve]. – genpfault

+0

(1) Вы уверены, что GL правильно инициализирован? Например. можете ли вы отобразить диффузный затененный куб? Если нет, то нужно задать другой вопрос. Следующее предполагает, что ваша проблема связана с текстурами, а не с базовым GL. (2) RGB должен иметь 3 байта на пиксель, но кажется, что вы только читаете 1. Я не прав? –

+0

Да, я прочитал 1 байт из файла ppm ... я понял что-то не так? – noName

ответ

0

Кажется, что текстуры не включены. Включить их:

glEnable(GL_TEXTURE2D) 

и попробуйте еще раз:

glGenTextures(1, &textureID)