« INFO821 : Infographie » : différence entre les versions

De Wiki du LAMA (UMR 5127)
Aller à la navigation Aller à la recherche
Ligne 1 : Ligne 1 :
== TPs ==
== TPs et TDs ==


On va partir d'un code fourni par l'enseignant et le développer avec divers outils.
TP : être capable de lire le format des fichiers '''.mesh''' sur le site [http://www-roc.inria.fr/gamma/download d'image 3D de l'INRIA] et d'afficher
Pour utiliser ce programme il faut
ces images en OpenGL


OCaml (version >= 3.11.1 recommandé)
TP2 : représentation des surfaces orientables par le type vu en cours
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 indiquer 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

Prochain TD : dessin de courbes implicites.


== Représentation des objets ==
== Représentation des objets ==

Version du 13 janvier 2010 à 16:38

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 indiquer 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

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 . ...