ISIM - La modelisation
Modelisation
- Rendu temps reel
- Rendu photorealiste (algorithme type raytracing)
- Maillages/polygones
- Mathematiques
- Animation
Chaque objet est decrit par une formule mathematiques
- Tres compact et bien adapte pour les algorithmes type raytracing
- Formule compliquee ou impossible a determiner pour la plupart des objets
Formes de bases - primitives 2D/3D
- Sphere
- Cylindre
- Cube
- Plan
- Tore
- …
Maillage
Construction d'objets par assemblage de polygones
- Bonne modelisation des objets avec peu de courbes (architecture…)
- Peu compacte mais facile manipuler
Representation
- Polygone utilise:
- Majoritairement le triangle
- Facilite le traitement (remplissage…)
- Representation en interne
- Liste de coordonnees de sommets par polygone
- Duplication des sommets communs a plusieurs polygones
- Pas de connaissance de la topologie
- Liste de sommets puis liste d'indice par polygone
- Gain de place
- Reduction de la quantite d'information
- Pas de connaissance de la topologie
Triangulation de Delauny
Cas pour quand le maillage n'est pas en triangle.
Diagramme de Voronoi
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Mesh Refinement
On veut appauvrir le maillage quand il est loin et l'enrichir quand il est pres.
Adaptive mesh refinement
Modelisation surfacique
Surfaces de Bezier
Bezier (1960 - Renault)
- Courbes de Bezier
- Surfaces de Bezier
Ces courbes ont ete mises en place pour representer les carosseries de voitures
Courbes de Bezier
Courbes de Bezier: definir une courbe passant par 2 points:
- Lissage lineaire
- avec
- Si plus de points: continu par morceau
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
- Lissage polynomial
- Pour garder la derivabilite en et :
- Il faut trouver les et les
- On va utiliser:
- Ce qui donne:
- Comment avoir les
Ajout de points de controles pour determiner la derivee localement.
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Les vecteurs tangents sont deduits par
Cela donne:
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
On peut chainer et rajouter des morceaux pour agrandir la courbe.
Resultats:
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
La texture est d'ailleurs procedurale
Pour definir une courbe plus complexe:
- Augementer le degre
- La modification d'un point de controle perturbe toute la courbe
- Joindre plusieurs courbes de Bezier
Pour appliquer des transformations affines:
- Applique les transformations affines aux points de controle
Surfaces de Bezier
Par extension: surfaces de Bezier
- 4 points de controle en 2D, 16 points de controle en 3D
- Joindre plusieurs surfaces de Bezier
Lissage de polygones
Surface de subdivision
Differents algorithmes: Algorithme de catmull-Clark, Doo-sabin.
Un exemple en 2D:
- Diviser chaque segment en 3 parties egales
- joindre les divisions successives
- Recommencer jusqu'au niveau lissage desire
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
A faire en 3D
Algorithme de Catmull-Clark
Exemple:
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Est-ce qu'on peut dire que c'est fait… a la main ?
Modelisation par assemblage
C.S.G.
C.S.G.: Constructive Solid Geometry
Combiner des briques de base (solides) par des operations:
- Union
- Intersection
- Difference
Union:

Intersection:


Difference:


Representation sous forme d'arbre:

- Fonction implicite d'un solide:
- interieur
- surface
- exterieur
- Pour le calcul des C.S.G.:
Modelisation par revolution
L'objet est construit par la rotation d'une forme autour d'un axe de revolution
- Fonction d'un angle
- Fonction d'un pas d'echantillonnage
Trace du contour:


L'axe de revolution se situe au centre (axe vert et axe rouge)


On se rend compte que le Graal n'est rien d'autre qu'une fulte a champagne

Autres exemples:

La boule de bowling presente des C.S.G.

Modelisation par extrusion
- L'objet est construit par une surface suivant une trajectoire
- Le chemin peut etre plus ou moins complique

C'est peut-etre une etoile de mer mais je la fait sortir de terre
Retour a la main de tout a l'heure:


Cartes d'altitudes
Permet generalement de representer les terrains:

Exemple:

Is this minecraft
Representation d'un objet par iosurface
Imaginons qu'on met une source d'energie qui chauffe:


Qu'est-ce qui se passe si on a 2 points d'energie qui se rapprochent ?


On obtient une courbe car les valeurs se somment.
On peut utiliser cette courbe pour modeliser des formes arrondies.
En 2D:



En 3D:



J'ai fait un petit objet, je sais pas ce que c'est.
Hand-spinner?
On peut faire des gouttes de mercure qui s'attachent ensemble.
Le point d'energie n'est pas forcement ponctuel, ca peut un un plan, un cylindre, etc.

On un un p'tit.. p'tit cheval
- Rendu
- En raytracing, evaluation le lonf du rayon
- Algorithme des "marching cubes"
- Particules
- Attention au calcul des normales
- Modelisation
Modelisation de la vegetation
Graftales
Modelisation desplantes
- L-Systems (Lindenmayer, 1968)
- Similaire a une grammaire
- souvent utilise pour modeliser la vegetation (mais pas seulement)

Y'a un super cours de theorie des langages donne par Jonathan Fabrizio
On par de l'axiome et on applique la regle de production
- On divise le 1 segment en 3 sous-segments
- On rajoute 2 segments inclines
- On repete a chaque etape

On a besoin de differentes regles d'evolutions (branches, couleurs, etc.). Le plus dur c'est de definir la grammaire de base.
Acquisition
Comment font-ils pour faire des modeles aussi beau ?
Scan 3D
Pour le monde de Nemo:

On a un vrai artiste qui fait un vrai modele

Suite au scan 3D du modele


Pour Avatar:

Cette pratique est assez courante.
D'autres artistes scultent directement le modele numerique.
Sculpture 3D:

- Aretes aillees
- B-rep
- Array of vertex
- Enregistrer tous les sommets et leurs proprietes
- Pas tres compact
- Array of indexes
- Lister les sommets et leur caracteristiques
- Tablea d'addressage indexe


Dans cette exemple: le sommet 1 est enregistre plusieurs fois, on a pas a enregistrer ses caracteristiques a chaque fois, on fait un addressage indexe.
Ne mache pas toujours, les proprietes peuvent varier d'un meme sommet en fonction du polygone auquel il est rattache.
Aretes ailles
Une arete:
- une orientation
- Sommet de depart et d'arrivee
- On les memorise selon un ordre
- deux faces
- deux sommets
- quatre aretes
- Le sommet actuel y est toujours lie si elles existent

Boundary Representation B-Rep
Un solide est modelise par les elements exterieurs.
- Cela donne une surface fermee
- Ensemble de :
- Faces, aretes et sommets + relations topologiques
- Les faces ne doivent pas s'intersecter ailleurs que sur des aretes explicites (de la B-REP)
- Les afces doivent separer l'interieur de l'exterieur du solide
- Redondance des donnees risque d'incoherence
Modelisation d'une scene
Deformation/Mouvements/Objets articules
- Representation hierarchique
- Systeme de pile de matrices

On veut contorsionner un objet mais ses morceaux doivent restes coherents.
- Une solution: faire un volume de Bezier et modifier les points de controle
- Solution simple
- Pas la plus efficace

Animation
Generation de toutes les images qui composent l'animations
- Il faut donc modeliser les transformations
- Deplacements
- Deformations
- Changement de couleur
- …
- Equation de mouvement
- Definitions des positions et orientations - trajectoire a suivre
- Position cle et interpolation
- Specification que de quelques positions puis interpolation automatique pour generer les positions intermediaires (pas facile de respecter toutes les contraintes)
- Modele physique
- Donne du realisme au mouvement

- L'ordinateur calcul les positions intermediaires
- L'animateur fait les images "cles" de l'animation
Positions cles

Celle de droite c'est quand Fabrizio va voir mon raytracer
Vitesse du mouvement

Il faut gere l'acceleration du mouvement entre 2 positions cles
- Un mouvement lineaire n'est pas realiste
- Il y a du travail sur l'expression du visage
Le monde de Nemo
Filmer des poissons reels pendant tres longtemps et reproduire le mouvement


Animations difficiles
Animation de personnages
- Definition de l'animation complete du personnage
- Difficile et consommation memoire trop elevee
- Definition d'un "squelette" et d'une "peau"
- Le mouvement est specifie uniquement pour le squelette
- Gain de place
Retournons sur la main:

On a rajoute un squelette, si on veut bouger la main, on bouge le squelette.
Le squelette de la main est anatomiquement faux
- Definition d'un "squelette"
- Le corps humain comporte environ 200 os
- Environ une centaine d'articulations
- assemblage de segments rigides
- Structure arborescente hierarchique
- Rotation avec ajout de contraintes
- Cinematique inverse
- Trouver la bonne position
- Le deplacement des os entraine le deplacement de la peau

- La peau
- Cylindres
- Maillages ou surfaces (Splines…)
- Attachement de chaque point a un os
- Ponderation de l'attachement d'un point aux os voisins

- Modeles de muscles
- Modelisation par blobs et surfaces implicites
- Dans l'ensemble ce type de modeles n'est plus trop utilise
- Modelisation des muscles par des ressorts

- Modelisation par particules hierarchiques
- Noyau: lie au reste du modele
- Derme: deformation del'objet
- Epiderme: cohesion et surface + interaction et collisions avec le rest du monde
Diminution de la complexite
- Interaction uniquement avec la couche voisine
- Interaction avec l'exterieur geree au niveau de l'epiderme
- diminution du nombre de particules
- diminution de la quantite de calculs

- Problemes de jointures
- Augmentation du maillage aux jointures
- Ajout d'os dans l'articulation
- Ajout de contraintes: section minimal autour de chaque os..
- Lissage des ponderations des contributions des os sur l'enrobage
Animation de visages
Quelques positions modelisees
- Normal, souriatn..
- Calcul automartique des transitions (morphing)
Temps reel: Blend shape
- Position neutre
- Codage des deltas pour arriver a une position particuliere
Motion capture

- Realisme important
- Des acteurs vont jouer la scene
- Jouent dans un hangar dans lequel ils sont geolocalises
- Ils auraient pu se peindre le visage en bleu mais ils ont pas oses
- Au moins ils ont des p'tites oreilles
- Camera: geolocalisee
Mapping:



C'est pendant l'entrainement, pas le hangar
Mouvement du visage:

Une grosse bete va manger des chevaux:


On va caller des modeles 3D de chevaux qui se feront manger

Fonctionne de la meme facon que le motion capture avec les humains:


Pas tous les filmes utilisent le motion capture, comme Ratatouille
Tissus et vetements
Modeles masses-ressorts
- Maillage de Provot
- On met des "masses"
- Ajout de ressorts pour le cisaillement et la courbure
- Indique les contraintes physiques entre chacune des masses

Collisions et autocollisions
- Beaucoup de calculs
- division de l'espace et volumes englobants
- Autocollisions
- Eviter que le tissus passe au travers de lui-meme en se repliant
Conclusions
- Modelisatione et animation