Mesh
mesh= M
esh(GL_TRIANGLES);
// 1er triangle
mesh.vertex(x, y, z);
mesh.vertex(
x, y, z);
mesh.vertex(
x, y, z);
// 2ieme triangle
mesh.vertex(
x, y, z);
mesh.vertex(
x, y, z);
mesh.vertex(
x, y, z);
Mesh
mesh= M
esh(GL_TRIANGLES);
// sommets
unsigned int a=
mesh.vertex(
x,
y, z);
unsigned int b=
mesh.vertex(
x,
y, z);
unsigned int c=
mesh.vertex(
x,
y, z);
unsigned int d=
mesh.vertex(
x,
y, z);
// triangle indexes
mesh.triangle(a, b, c);
et avec 2 carrés ? l'un à coté de l'autre ?
vous pouvez construire 2 meshs
avec des coordonnées différentes, mais utiliser les
transformations est beaucoup plus souple. cf Translation( ),
RotationZ( ) (pourquoi Z ?) dans mat.h...
et fournir 2 transformations
différentes aux carrés pour qu'il s'affichent à des endroits
différents : cf draw(mesh, model, view, projection).
Pour afficher le même objet à deux endroits différents, il faut
modifier la transformation model...
Mesh
mesh= Mesh(GL_TRIANGLES);
//
ajouter des sommets au mesh
{ ... }
//
afficher le premier carre directement, sans transformations
draw(mesh, Identity(), Identity(), Identity());
//
afficher le 2ieme
, avec une transformation pour le
deplacer :
Transform m= Rotate??( ... );
draw(mesh, m, Identity(), Identity());
et si on fait tourner le 1er, comment faire bouger le 2ieme afin qu'il conserve la meme position relative ?
il est assez simple de contrôler l'animation au clavier, cf tutos/tuto3.cpp
et si la camera bougeait ? quelle transformation utiliser ?
pour vérifier, modifiez la transformation view de draw(mesh, model, view, projection);