INFO821 : Infographie
TPs et TDs
On va partir d'un code fourni par l'enseignant et le développer avec divers outils. Pour utiliser ce programme il faut
OCaml (version >= 3.11.1 recommandé) lablGL (version récente recommandé) darcs (version >= 2.0 indispensable) et les outils de développement usuel (make ou gnumake, un compilo C, etc ...)
Tous ces logiciels exitent en paquet ubuntu/debian/fink et pleins d'autres ... avec fink (OS X) la compilation de darcs prends beaucoup de temps.
Une fois que tout ça est installé, il faut taper :
<source lang=bash> darcs get http://lama.univ-savoie.fr/~raffalli/repos/Infographie make depend make </source>
Vous pouvez tester le code en tapant (XXX.mesh étant le nom d'un fichier fourni dans le répertoire Mesh)
<source lang=bash> ./vmesh.opt Mesh/XXX.mesh </source>
Pour utiliser darcs, il faudra
- enregistrer vos changements avec la commande
<source lang=bash> darcs record </source>
- aller chercher les changements des autres (et du prof.) avec la commande
<source lang=bash> darcs pull URL </source>
Attention, après un darcs pull vous aurez souvant des conflits à gérer indiqués dans les fichiers. Il faut toujours faire un darcs record avant un darcs pull sinon on ne peut pas faire darcs unpull.
Si vous voulez propager vos changements vers un serveur web pour les partager, la commande darcs push pourra être utile pour éviter de ce logger sur le serveur.
Prochain TD : dessin de courbes implicites.
Représentation des objets
Nombres
- Nombres entiers (pb de taille)
- Nombres flottants (pb de précision) norme IEEE 754
Points
- Tableaux (ou liste)
- Coordonnées cartésiennes ou projective
- On ne calcule qu'une fois les coordonnées de chaque point
Courbes
- Liste ou tableaux de pointeurs ou d'indices
- Courbe paramétrée
- Discrétisation à vitesse constante
- Discrétisation utilisant la courbure:
Surfaces
- Liste de triangles
- Liste de Quadrilatères et polygones (attention plan) (fin du cours du 11 janvier)
- Représentation avancée par demi-arrêtes
- Surfaces paramétrées
- Surfaces implicites
Triangulation de surfaces implicites Algorithme du marching-cube
- Idée générale
- Découpage du cube en tétrahèdre
- Algorithme
Traitement des triangulations
- Permutation des arrêtes
- Changement de résolution
Triangulation de nuages de points
Utilisation d'OpenGl
Bases mathématiques (vues au fur et à mesure)
Coordonnées cartésiennes dans le plan et l'espace
- dans le plan
- dans l'espace
- Généralisation dans
Distinction en point et vecteur (direction).
Problèmes de représentation en machine : virgule flottante, virgule fixe, entier ... Tableau ou enregistrement (record).
Opérations sur les vecteurs : sommes, multiplication par un scalaire, produit scalaire et produit vectoriel.
Coordonnées projectives dans le plan et l'espace
Idée : ajouté les points à l'infini. Intérêt : simplifie beaucoup de choses (transformation affine, projection, classification des quadriques, ...)
- dans le plan projectif si . De plus si ,
- dans l'espace projectif
- Généralisation dans
Comparaison avec les coordonnées cartésiennes : est le point à l'infini dans la direction (x,y,z) ou (-x:-y:-z). Parfois utile de distinguer de . représente le point si . Donc le point de coordonnées cartésiennes à les coordonnées projectives pour tout .
Opération sur les vecteurs : attention à la somme !
Équation d'un plan et d'une droite
Donnée d'une droite du plan par un point et une direction . est alors une direction orthgonale (on dit normale à la droite). Équation implicite en cartésien : . C'est à dire: . En projectif: (l'équation est homogène).
Donnée d'un plan de l'espace par un point et une direction normale . Équation implicite en cartésien : . C'est à dire: . En projectif: (l'équation est homogène).
Donnée d'une droite de l'espace par un point et une direction . ...