Home ISIM: La modelisation
Post
Cancel

ISIM: La modelisation

Lien de la note Hackmd

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

Diagramme de Voronoi

  • $vor(p) = {x\in E;\forall qd(x,p)\le d(x,q)}$

Mesh Refinement

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

  • Lissage lineaire
    • $P_1t+P_2(1-t)$ avec $0\le t\le1$
    • Si plus de points: continu par morceau

  • Lissage polynomial
    • $x(t) = Q(t) = a_3t^3+a_2t^2+a_1t+a_0$
    • $y(t) = R(t) = b_3t^3+b_2t^2+b_1t+b_0$
    • Pour garder la derivabilite en $P_1$ et $P_2$:
      • $Q’(t) = 3a_3t^3+2a_2t+a_1$
      • Idem pour $y(t)$
    • Il faut trouver les $a_i$ et les $b_i$
  • On va utiliser:
    • $x(0)=xP_1$
    • $x(1)=xP_2$
    • $x’(0) = x’P_1$
    • $x’(1)=x’P_2$
  • Ce qui donne:
    • $x(t)=(2t^3-3t^2+1)xP_1+(-2t^3+3^2)xP_2+(t^3-2t^2+1)x’P_1+(t^3-t^2)x’P_2$
    • Idem pour $y(t)$
  • Comment avoir les
    • $x’(0)=x’P_1$
    • $x’(1)=x’P_2$

Les vecteurs tangents sont deduits par $3(D_1-P_1)$

On peut chainer et rajouter des morceaux pour agrandir la courbe.

Resultats:

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

A faire en 3D

Algorithme de Catmull-Clark

Exemple:

Est-ce qu’on peut dire que c’est fait… a la main ?

Modelisation par assemblage

C.S.G.

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)\lt0$ interieur
    • $F(x,y,z)=0$ surface
    • $F(x,y,z)\gt0$ exterieur
  • Pour le calcul des C.S.G.: $-1;0;1$
    • $F_{A\cap B}(p) = \max(F_A(p),F_B(p))$
    • $F_{A\cup B}(p) = \min(F_A(p),F_B(p))$
    • $F_{A-B}(p) = \max(F_A(p),-F_B(p))$

Modelisation par revolution

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

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.

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.

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

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:

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.

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

  • 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 $\to$ 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

  • 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

$\to$ 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
This post is licensed under CC BY 4.0 by the author.