Try   HackMD

ISIM - La modelisation

Modelisation

  • Rendu temps reel
    • Mailages/polygones
  • Rendu photorealiste (algorithme type raytracing)
    • Maillages/polygones
    • Mathematiques
  • Animation
    • Modeles physiques

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

  • vor(p)={xE;qd(x,p)d(x,q)}

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

  • Depth tagging

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
    • P1t+P2(1t)
      avec
      0t1
    • 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
    • x(t)=Q(t)=a3t3+a2t2+a1t+a0
    • y(t)=R(t)=b3t3+b2t2+b1t+b0
    • Pour garder la derivabilite en
      P1
      et
      P2
      :
      • Q(t)=3a3t3+2a2t+a1
      • Idem pour
        y(t)
    • Il faut trouver les
      ai
      et les
      bi
  • On va utiliser:
    • x(0)=xP1
    • x(1)=xP2
    • x(0)=xP1
    • x(1)=xP2
  • Ce qui donne:
    • x(t)=(2t33t2+1)xP1+(2t3+32)xP2+(t32t2+1)xP1+(t3t2)xP2
    • Idem pour
      y(t)
  • Comment avoir les
    • x(0)=xP1
    • x(1)=xP2

Ajout de points de controles

Dn 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

3(D1P1)

Cela donne:

xP1(1t)3+xD1(3t(1t)2)+xD23t2(1t)+xP2t3

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:
    F(x,y,z)
    • F(x,y,z)<0
      interieur
    • F(x,y,z)=0
      surface
    • F(x,y,z)>0
      exterieur
  • Pour le calcul des C.S.G.:
    1;0;1
    • FAB(p)=max(FA(p),FB(p))
    • FAB(p)=min(FA(p),FB(p))
    • FAB(p)=max(FA(p),FB(p))

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:

  • Construction:
    • Iterative

Exemple:

Is this minecraft

Blobs/Metaballs

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
    • Eau

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
    er
    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:

Codage des Formes/Maillages

  • 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

Deformations libres

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