Mesh mesh=
create_mesh(GL_TRIANGLES);
// 1er triangle
push_vertex(mesh, x, y, z);
push_vertex(mesh, x, y, z);
push_vertex(mesh, x, y, z);
// 2ieme triangle
push_vertex(mesh, x, y, z);
push_vertex(mesh, x, y, z);
push_vertex(mesh, x, y, z);
Mesh mesh=
create_mesh(GL_TRIANGLES);
// sommets
unsigned int a= push_vertex(mesh, x,
y, z);
unsigned int b= push_vertex(mesh, x,
y, z);
unsigned int c= push_vertex(mesh, x,
y, z);
unsigned int d= push_vertex(mesh, x, y, z);
// triangle indexes
push_triangle(mesh, 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
make_translation( ), make_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), il faut modifier la transformation model...
Mesh mesh= create_mesh( ... );
// ajouter des sommets au mesh
{ ... }
// afficher le premier carre
directement, sans transformations
draw(mesh, make_identity(), make_identity(), make_identity());
// afficher le 2ieme
,
avec une transformation pour le deplacer :
Transform m= make_xxx( ... );
draw(mesh, m, make_identity(), make_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);
utilisez write_mesh(...) pour enregistrer votre carré dans un fichier .obj.
remarque : les couleurs de sommets ne sont pas enregistrées...
compilez shader_kit.cpp
chargez votre objet et tp1.glsl : ./bin/shader_kit tp1.glsl carre.obj (ou ./bin/gKit2light tp1.glsl carre.obj, si vous compilez avec les makefiles).
modifiez la position des sommets du carré en fonction du temps,
déclarez uniform float time; dans le shader.
remarque : la liste des uniforms pré-déclarés par shader_kit est dans le tuto compiler un shader program.