a deriver pour creer les objets openGL. renvoie -1 pour indiquer une erreur, 0 sinon.
24 {
25
28 return -1;
29
30 Point pmin, pmax;
32 m_camera.lookat(pmin - Vector(40, 0, 0), pmax + Vector(40, 0, 0));
33
35
36
37 glGenVertexArrays(1, &m_vao);
38 glBindVertexArray(m_vao);
39
40
41 glGenBuffers(1, &m_buffer);
42 glBindBuffer(GL_ARRAY_BUFFER, m_buffer);
43
45 glBufferData(GL_ARRAY_BUFFER, size, nullptr, GL_STATIC_DRAW);
46
47
48 size_t offset= 0;
50 glBufferSubData(GL_ARRAY_BUFFER, offset, size, mesh.
vertex_buffer());
51
52 glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, (const GLvoid *) offset);
53 glEnableVertexAttribArray(0);
54
55
56 offset= offset + size;
58 glBufferSubData(GL_ARRAY_BUFFER, offset, size, mesh.
normal_buffer());
59
60 glVertexAttribPointer(2, 3, GL_FLOAT, GL_FALSE, 0, (const GLvoid *) offset);
61 glEnableVertexAttribArray(2);
62
63
65 glBindVertexArray(0);
66 glBindBuffer(GL_ARRAY_BUFFER, 0);
67
68
71
72
73 glClearColor(0.2f, 0.2f, 0.2f, 1.f);
74
75 glClearDepth(1.f);
76 glDepthFunc(GL_LESS);
77 glEnable(GL_DEPTH_TEST);
78
79 return 0;
80 }
const float * vertex_buffer() const
renvoie l'adresse de la position du premier sommet. permet de construire les vertex buffers openGL....
void bounds(Point &pmin, Point &pmax) const
renvoie min et max les coordonnees des extremites des positions des sommets de l'objet (boite engloba...
std::size_t vertex_buffer_size() const
renvoie la longueur (en octets) du vertex buffer.
int vertex_count() const
renvoie le nombre de sommets.
void release()
detruit les objets openGL.
const float * normal_buffer() const
renvoie l'adresse de la normale du premier sommet. par convention, la normale est un vec3,...
std::size_t normal_buffer_size() const
renvoie la longueur (en octets) du normal buffer.
Mesh read_mesh(const char *filename)
charge un fichier wavefront .obj et renvoie un mesh compose de triangles non indexes....
GLuint read_program(const char *filename, const char *definitions)
int program_print_errors(const GLuint program, const char *filename)
affiche les erreurs de compilation.