Bonjour,
j'ai un bug que je n'arrive pas à expliquer.
Lorsque que j'exécute se code j'ai le comportement souhaité :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 /***********************VAO 3DObject***********************/ if (glIsVertexArray(this->VAO_Mesh == GL_TRUE)) glDeleteVertexArrays(1, &this->VAO_Mesh); glGenVertexArrays(1, &this->VAO_Mesh); glBindVertexArray(this->VAO_Mesh); glBindBuffer(GL_ARRAY_BUFFER, this->VBO_Vertices); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(0)); glEnableVertexAttribArray(0); glBindBuffer(GL_ARRAY_BUFFER, 0); glBindBuffer(GL_ARRAY_BUFFER, this->VBO_Normals); glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(0)); glEnableVertexAttribArray(1); glBindBuffer(GL_ARRAY_BUFFER, 0); if (!this->uvs.empty()) { glBindBuffer(GL_ARRAY_BUFFER, this->VBO_UVs); glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(0)); glEnableVertexAttribArray(2); glBindBuffer(GL_ARRAY_BUFFER, 0); } glBindVertexArray(0); sf::Texture t; t.loadFromFile("../refactoring/res/images/grass.jpg");
Mais lorsque j'exécute ce code j'obtient ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 sf::Texture t; t.loadFromFile("../refactoring/res/images/grass.jpg"); /***********************VAO 3DObject***********************/ if (glIsVertexArray(this->VAO_Mesh == GL_TRUE)) glDeleteVertexArrays(1, &this->VAO_Mesh); glGenVertexArrays(1, &this->VAO_Mesh); glBindVertexArray(this->VAO_Mesh); glBindBuffer(GL_ARRAY_BUFFER, this->VBO_Vertices); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(0)); glEnableVertexAttribArray(0); glBindBuffer(GL_ARRAY_BUFFER, 0); glBindBuffer(GL_ARRAY_BUFFER, this->VBO_Normals); glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(0)); glEnableVertexAttribArray(1); glBindBuffer(GL_ARRAY_BUFFER, 0); if (!this->uvs.empty()) { glBindBuffer(GL_ARRAY_BUFFER, this->VBO_UVs); glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(0)); glEnableVertexAttribArray(2); glBindBuffer(GL_ARRAY_BUFFER, 0); } glBindVertexArray(0);
Et franchement je ne vois pas pourquoi le chargement d'une texture serait affecté par un VAO ? Oo
L'erreur vient de glBindTexture(GL_TEXTURE_2D, 0) à la ligne 526.
Merci d'avance,
Robin
Partager