bonjour,
je n'arrive pas à "passer" un tableau de vertex à mon VBO
j'ai écris une classe LoadObj qui est un simple loader de format .obj qui me stocke dans un tableau les float des coordonnées des vertex sous la forme x0,y0,z0,x1,y1,z1,...
lors du débogage,après avoir chargé mon .obj,les valeurs de vertex sont ok
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 class LoadObj { private: .. public: ... GLfloat vertex[100]; //ici stockage des vertex }
vertex(100]={1.000000,-1.000000,1.000000,....}
lorsque je passe ce tableau à glBufferData,rien ne s'affiche.
voici le résumé du code
quand je passe un tableau avec les valeurs rentrées "à la main"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 LoadObj a("cube.obj"); .... GLuint vertexbuffer; glGenBuffers(1, &vertexbuffer); glBindBuffer(GL_ARRAY_BUFFER,vertexbuffer); glBufferData(GL_ARRAY_BUFFER, sizeof(a.vertex),a.vertex, GL_STATIC_DRAW); glEnableClientState(GL_VERTEX_ARRAY); glBindBuffer(GL_ARRAY_BUFFER, vertexbuffer); glVertexPointer(3, GL_FLOAT, 3 * sizeof(float), 0); glDrawArrays(GL_TRIANGLES, 0, 3); glDisableClientState(GL_VERTEX_ARRAY);
ça fonctionne,ex;
qu'est ce qui ne va pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 vertex[]={1.000000,-1.000000,1.000000,...} GLuint vertexbuffer; glGenBuffers(1, &vertexbuffer); glBindBuffer(GL_ARRAY_BUFFER,vertexbuffer); glBufferData(GL_ARRAY_BUFFER, sizeof(vertex),vertex, GL_STATIC_DRAW); glEnableClientState(GL_VERTEX_ARRAY); glBindBuffer(GL_ARRAY_BUFFER, vertexbuffer); glVertexPointer(3, GL_FLOAT, 3 * sizeof(float), 0); glDrawArrays(GL_TRIANGLES, 0, 3); glDisableClientState(GL_VERTEX_ARRAY);
Merci de votre aide
je suis sous windows 8.1.je travaille avec Visual C++ 2015 sous win32 avec glew,opengl 4.2
Partager