Cours 1 - Premiers pas en 3D. Xavier Décoret - INF583 École Polytechnique



Documents pareils
Synthèse d'images I. Venceslas BIRI IGM Université de Marne La

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

Chapitre 3 : Repères et positionnement 3D

Cours de Mécanique du point matériel

DURÉE DU JOUR EN FONCTION DE LA DATE ET DE LA LATITUDE

Fonctions de plusieurs variables

05/09/2015. M Ponctualité : CM TD TP & Projet Æ En cas d absence : récupérer!!! 3 05/09/2015

Calcul intégral élémentaire en plusieurs variables

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Notes du cours MTH1101 Calcul I Partie II: fonctions de plusieurs variables

Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies

point On obtient ainsi le ou les points d inter- entre deux objets».

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

Deux disques dans un carré

Chapitre 0 Introduction à la cinématique

LA PHYSIQUE DES MATERIAUX. Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE

modélisation solide et dessin technique

COMPTE-RENDU «MATHS EN JEANS» LYCEE OZENNE Groupe 1 : Comment faire une carte juste de la Terre?

Programmation linéaire

8.1 Généralités sur les fonctions de plusieurs variables réelles. f : R 2 R (x, y) 1 x 2 y 2

Géométrie dans l espace Produit scalaire et équations

OM 1 Outils mathématiques : fonction de plusieurs variables

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

Activités numériques [13 Points]

RIE LE RENDU THEO. 2 e trim ÉTAPE DE FINITION BOÎTE DE DIALOGUE. remarques

Cours d Analyse. Fonctions de plusieurs variables

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

LE PRODUIT SCALAIRE ( En première S )

1S Modèles de rédaction Enoncés

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

1 radian. De même, la longueur d un arc de cercle de rayon R et dont l angle au centre a pour mesure α radians est α R. R AB =R.

Paris et New-York sont-ils les sommets d'un carré?

TOUT CE QU IL FAUT SAVOIR POUR LE BREVET

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en Énoncé.

Plan du cours : électricité 1


Cours Fonctions de deux variables

TP Blender n 2 : Importation d un modèle SketchUp et animation

Mesure d angles et trigonométrie

Analyse de la vidéo. Chapitre La modélisation pour le suivi d objet. 10 mars Chapitre La modélisation d objet 1 / 57

Les nouveautés de Femap 11.1

ANALYSE CATIA V5. 14/02/2011 Daniel Geffroy IUT GMP Le Mans

Fonctions de deux variables. Mai 2011

Notes du cours MTH1101N Calcul I Partie II: fonctions de plusieurs variables

TUTORIAL 1 ETUDE D UN MODELE SIMPLIFIE DE PORTIQUE PLAN ARTICULE

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

Représentation géométrique d un nombre complexe

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

Cours IV Mise en orbite

Chapitre 2 : Caractéristiques du mouvement d un solide

Intégrales doubles et triples - M

Exercice 1 Trouver l équation du plan tangent pour chaque surface ci-dessous, au point (x 0,y 0,z 0 ) donné :

Chapitre 1 Cinématique du point matériel

Fonctions de plusieurs variables

Analyse statique d une pièce

TPs Architecture des ordinateurs DUT Informatique - M4104c SUJETS. R. Raffin Aix-Marseille Université romain.raffin-at-univ-amu.fr

Si deux droites sont parallèles à une même troisième. alors les deux droites sont parallèles entre elles. alors

Problèmes sur le chapitre 5

Introduction au maillage pour le calcul scientifique

GMEC1311 Dessin d ingénierie. Chapitre 1: Introduction

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

F411 - Courbes Paramétrées, Polaires

Exemple d application en CFD : Coefficient de traînée d un cylindre

Notice d Utilisation du logiciel Finite Element Method Magnetics version 3.4 auteur: David Meeker

INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

Sujet 1 : Diagnostique du Syndrome de l apnée du sommeil par des techniques d analyse discriminante.

Les droites (d 1 ) et (d 2 ) sont sécantes en A Le point A est le point d intersection des 2 droites

Aide - mémoire gnuplot 4.0

Le projet 3D de la Ville de Liège: réflexions sur l'exploitation des données. Bernard Lechanteur, Responsable Cellule cartographie Ville de Liège

Mise en scène d un modèle dans l espace 3D

Rapport de Projet Béatrice Frey et Cyril Crassin Printemps Projet Fourmis. Université de Technologie de Belfort-Montbéliard

Nom : Groupe : Date : 1. Quels sont les deux types de dessins les plus utilisés en technologie?

CHAPITRE 10. Jacobien, changement de coordonnées.

La géométrie du triangle III IV - V Cercles remarquables - Lieux géométriques - Relations métriques

Travaux dirigés n 10

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Chafa Azzedine - Faculté de Physique U.S.T.H.B 1

Les algorithmes de base du graphisme

Imagerie Numérique Synthèse d images. DUT Informatique Sébastien THON

Continuité d une fonction de plusieurs variables

Simulation d'un examen anthropomorphique en imagerie TEMP à l iode 131 par simulation Monte Carlo GATE

On ne peut pas entendre la forme d un tambour

Algorithmes pour la planification de mouvements en robotique non-holonome

Gestion de scène pour les moteurs 3D

Priorités de calcul :

EXERCICES DE REVISIONS MATHEMATIQUES CM2

Corrigé du baccalauréat S Pondichéry 12 avril 2007

Formes quadratiques. 1 Formes quadratiques et formes polaires associées. Imen BHOURI. 1.1 Définitions

Manuel Utilisateur Logiciel PEB Partie modeleur version 2.5

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Structurer ses données : les tableaux. Introduction à la programmation

Optimisation des fonctions de plusieurs variables

Rendu temps réel de mer et de nuages

OPTIQUE GEOMETRIQUE POLYCOPIE DE COURS

Tâche complexe produite par l académie de Clermont-Ferrand. Mai 2012 LE TIR A L ARC. (d après une idée du collège des Portes du Midi de Maurs)

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

3 Approximation de solutions d équations

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable

Transcription:

Cours 1 - Premiers pas en 3D Xavier Décoret - INF583 École Polytechnique

Disclaimer Attention, c est le cours le plus difficile le plus important Il y a beaucoup de on verra plus tard C est le canvas sur lequel ancrer les connaissances 2 Xavier Décoret - INF 583 - Polytechnique 28

Overview Représentation du monde maillages coordonnées homogènes matrices de transformation Obtention d une image modèle de caméra ray-tracing rasterisation découverte de l API 3 Xavier Décoret - INF 583 - Polytechnique 28

Overview Représentation du monde maillages coordonnées homogènes matrices de transformation Obtention d une image modèle de caméra ray-tracing rasterisation découverte de l API 4 Xavier Décoret - INF 583 - Polytechnique 28

Représentation du monde Notion de modèle représenter un objet à manipuler modèles réduits, maquettes visualisation et édition abstraire la réalité simplifier/idéaliser le problème réduire/identifier les paramètres Types de modèles? modèles mathématiques classes d objets représentables modèles numériques valeurs décrivant un objet particulier 5 Xavier Décoret - INF 583 - Polytechnique 28

Spécificité de l informatique Le modèle doit être constructif ex: la suite des nombres premiers en math définition par des propriétés manipulation par des théorèmes en info on veut leurs valeurs! ex: droite perpendiculaire à une autre d en math en info règle et compas d modèle du compas et de la règle coordonnées 2D π r D( M, rot(, v)) 2 r D( M, v) 6 Xavier Décoret - INF 583 - Polytechnique 28

Application au graphisme (1/2) Que faut-il modéliser? la forme des objets l apparence des objets matériaux ombres plus généralement, les interaction lumineuses la physique mouvements collisions déformations 7 Xavier Décoret - INF 583 - Polytechnique 28

Application au graphisme (2/2) Quelles sont les contraintes? modèlepuissant permettant: de représenter une large classe d objets de créer des objets complexes à partir d objets simples modèleintuitif permettant d éditer le modèle d animer des parties du modèle modèleefficace peu coûteux en mémoire rapide à afficher / à traiter 8 Xavier Décoret - INF 583 - Polytechnique 28

Conclusion Il n y a pas un mais des modèles! On verra principalement les maillages PGCD des différents modèles Adapté au cartes accélératrices 3D Plutôt intuitif Massivement utilisé On en verra d autres plus tard Modélisation à base de point Modélisation à base d image Modélisation procédurale Surfaces paramétrées 9 Xavier Décoret - INF 583 - Polytechnique 28

Overview Représentation du monde maillages coordonnées homogènes matrices de transformation Obtention d une image modèle de caméra ray-tracing rasterisation découverte de l API 1 Xavier Décoret - INF 583 - Polytechnique 28

Maillages Ensemble de sommets et de faces sommet (vertex/vertices) ensemble d attributs dont une position 3D faces (face, facets) relie les points a deux côtés l orientation compte doit être convexe peut se ramener aux triangles 11 Xavier Décoret - INF 583 - Polytechnique 28

Authoring Avec un système de scan 3D Avec un outil de DCC (Digital Content Creation) 12 Xavier Décoret - INF 583 - Polytechnique 28

Overview Représentation du monde maillages coordonnées homogènes matrices de transformation Obtention d une image modèle de caméra ray-tracing rasterisation découverte de l API 13 Xavier Décoret - INF 583 - Polytechnique 28

Coordonnées homogènes Espace projectif IP 3 Espace quotient sur IR 4 pour la relation d équivalence ( ) ( ) ( ) ( ) = = = si ' ',, ',, si ' ', ' ', ' ',, ', ', ' ',,,, w z y x z y x w w z w y w x w z w y w x w z y x w z y x Contient IR 3 plus les points à l infini À quoi ça sert? Unifier les calculs géometriques Permettre des interpolations Cf. plus loin dans le cours 14 Xavier Décoret - INF 583 - Polytechnique 28

Overview Représentation du monde maillages coordonnées homogènes matrices de transformation Obtention d une image modèle de caméra ray-tracing rasterisation découverte de l API 15 Xavier Décoret - INF 583 - Polytechnique 28

Transformation Pourquoi? Utilisation de repères locaux Instanciation Lesquelles? Rigide: translation & rotation Autres: mise à l échelle, shear Et plus dans un instant Quelle représentation? Matrice 4x4 16 Xavier Décoret - INF 583 - Polytechnique 28

Représentation par matrice 4x4 Attention à l orientation Row order vs. column order float M[16] = { a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p }; float M[4][4] = { {a,b,c,d }, {e,f,g,h }, {i,j,k,l }, {m,n,o,p } }; p o n m l k j i h g f e d c b a p l h d o k g c n j f b m i e a {m,n,o,p } }; 17 Xavier Décoret - INF 583 - Polytechnique 28 Row order Column order?

Représentation par matrice 4x4 Attention à l orientation Row order vs. column order Anglo saxons et Français m i e a t matrice une transformation de )? ( s de coordonnée v t x p l h d o k g c n j f b m i e a 18 Xavier Décoret - INF 583 - Polytechnique 28 ),,, ( un point de coordonnées w z y x v p o n m l k j i h g f e d c b a w z y p o n m l k j i h g f e d c b a [ ] w z y x [ ]?

Représentation par matrice 4x4 Attention à l orientation Voici la convention/cohérence choisie float M[16] = { a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p }; float M[4][4] = { {a,b,c,d }, {e,f,g,h }, ) ( s de coordonnée v t 19 Xavier Décoret - INF 583 - Polytechnique 28 {e,f,g,h }, {i,j,k,l }, {m,n,o,p } }; = p l h d o k g c n j f b m i e a M ) ( s de coordonnée v t p l h d o k g c n j f b m i e a w z y x

Représentation par matrice 4x4 Permet les transformations précédentes Translation par (a,b,c) P(x,y,z) 1 a 1 b 1 c 1 1 1 1 a b c 1 xw yw zw w xw + aw yw + bw zw + cw w P(x+a,y+b,z+c) float M[4][4] = { {1,,,}, {,1,,}, {,,1,}, {a,b,c,1} }; float P[4] = {xw,yw,zw,w}; 2 Xavier Décoret - INF 583 - Polytechnique 28

Représentation par matrice 4x4 Permet les transformations précédentes Translation par (a,b,c) 1 a 1 b 1 c 1 Rotation de α autour de (x,y,z) c = cos( α) s = sin( α) 2 x (1 c) + c yx(1 c) zs zx(1 c) ys xy(1 c) + zs y 2 (1 c) + c zy(1 c) + xs xz(1 c) + ys yz(1 c) xs z 2 (1 c) + c 1 21 Xavier Décoret - INF 583 - Polytechnique 28

Représentation par matrice 4x4 Permet plus encore Projection sur un plan depuis un point (ou une direction) ( p, q, r, s) ax + by + cz + dw = M = T T [ abcd ] [ pqrs] [ abcd ] [ pqrs] I 22 Xavier Décoret - INF 583 - Polytechnique 28

Représentation par matrice 4x4 Permet plus encore Transformation d un segment en un autre [A,B] [a,b] ( a-(a.u)ab) T T M = u ab + ab Les vecteurs u,ab,a et A sont AB u = 2 AB des coordonnées homogènes avec w= pour u et ab, et avec w=1 pour a et A 23 Xavier Décoret - INF 583 - Polytechnique 28

Overview Représentation du monde maillages coordonnées homogènes matrices de transformation Obtention d une image modèle de caméra ray-tracing rasterisation découverte de l API 24 Xavier Décoret - INF 583 - Polytechnique 28

Obtention d une image Ray-tracing On part de la caméra et on regarde quelles parties de la scène elle voit. Rasterisation On part de la scène et on la projette sur l écran de la caméra 25 Xavier Décoret - INF 583 - Polytechnique 28

Caméra pinhole Paramètres intrinsèques et extrinsèques Position/orientation Pyramide de vue (view frustum) 26 Xavier Décoret - INF 583 - Polytechnique 28

Caméra pinhole Paramètres intrinsèques et extrinsèques Position/orientation Pyramide de vue (view frustum) 27 Xavier Décoret - INF 583 - Polytechnique 28

Caméra pinhole Paramètres intrinsèques et extrinsèques Position/orientation Pyramide de vue (view frustum) 28 Xavier Décoret - INF 583 - Polytechnique 28

Caméra pinhole Modélisé par deux matrices 4x4 View : place la caméra dans le monde ou, de manière équivalente, transforme le monde dans le repère propre de la caméra. Projection : projette les points sur le plan image et un viewport Indique comment mapper le plan image de la caméra sur tableau de pixels 29 Xavier Décoret - INF 583 - Polytechnique 28

Caméra pinhole Projection orthogonale et perspective Typiquement utile pour la conception (vue de dessus, de côté), mais aussi pour modéliser des sources lumineuses directionnelles comme le soleil. f aspect f near + far near far 1 θ avec f = cotan( ) 2 3 Xavier Décoret - INF 583 - Polytechnique 28 2near far near far

Caméra pinhole C est un modèle simple et pratique Ne simule pas les phénomènes optiques dus aux lentilles pas de profondeur de champ pas d aberrations On peut les rajouter par des post-traitements image http://www.linternaute.com/photo_numerique/dossier/aberrations/index.shtml 31 Xavier Décoret - INF 583 - Polytechnique 28

Caméra pinhole Appartient à une classe de caméra plus large Yu, J. and L. McMillan. EGSR 24 A Framework for Multiperspective Rendering. Yu, J. and L. McMillan. ECCV 24 General Linear Cameras. 32 Xavier Décoret - INF 583 - Polytechnique 28

Overview Représentation du monde maillages coordonnées homogènes matrices de transformation Obtention d une image modèle de caméra ray-tracing rasterisation découverte de l API 33 Xavier Décoret - INF 583 - Polytechnique 28

Ray-tracing (1/3) Pour chaque point P de l écran tracer un rayon joignant l oeil et P intersecter ce rayon avec les triangles de la scène calculer la couleur du point d intersection I lancer éventuellement des rayons secondaires depuis I on y reviendra 34 Xavier Décoret - INF 583 - Polytechnique 28

Ray-tracing (2/3) Calcul de l intersection de nombreuses méthodes faisable en parallèle utilisation de structures d accélération Fast, minimum storage ray/triangle intersection Möller T., Trumblore B. Siggraph 25 course Généralisable à d autres primitives Quadriques (sphères, ellipsoides, cylindres, cônes) Grille régulière ou hiérarchiques 35 Xavier Décoret - INF 583 - Polytechnique 28

Ray-tracing (3/3) Proche du phénomène physique Nombreuses variantes & applications Ray-tracing Path tracing Photon mapping Belles images mais coûteux 36 Xavier Décoret - INF 583 - Polytechnique 28

Rasterisation (1/3) Pour chaque triangle on projette les sommets sur l écran on rempli l intérieur du projeté en chaque point, on garde la projection la plus proche 37 Xavier Décoret - INF 583 - Polytechnique 28

Rasterisation (2/3) Projection sur l écran Position du sommet dans le monde Position dans le repère caméra Projection sur l écran Conversion en pixels duales, modélisé par une seule matrice : modelview 38 Xavier Décoret - INF 583 - Polytechnique 28

Rasterisation (3/3) Remplissage du projeté Interpolation des attributs Production d une couleur (cf. plus tard) Interpolation perspective 39 Xavier Décoret - INF 583 - Polytechnique 28

Rasterisation (3/3) Problème: élimination des faces cachées http://www.cosc.brocku.ca/offerings/3p98/course/lectures/hiddenlines/ 4 Xavier Décoret - INF 583 - Polytechnique 28

Rasterisation (3/3) Problème: élimination des faces cachées http://www.cosc.brocku.ca/offerings/3p98/course/lectures/hiddenlines/ Solution: Z-Buffer et Z-test Principe: stocker une couleur plus une distance à l oeil comparer celles des fragments produits garder le plus proche Principe du z-test Visualisation d un z-buffer 41 Xavier Décoret - INF 583 - Polytechnique 28

Conclusion On ne parlera que de rasterisation C est très adapté aux cartes graphiques (aka GPU) Pourquoi? Comment marche une carte? Transform & Lighting stage Rasterisation Framebuffer Deph/Alpha/Scissor/Stencil Tests 42 Xavier Décoret - INF 583 - Polytechnique 28

Overview Représentation du monde maillages coordonnées homogènes matrices de transformation Obtention d une image modèle de caméra ray-tracing rasterisation découverte de l API 43 Xavier Décoret - INF 583 - Polytechnique 28

API graphiques Permet d envoyer des ordres à la carte Très proche du hard Deux grandes: DirectX OpenGL Un exemple vaut mieux qu un long discours spécifier un maillage en direct mode instancier un objet placer la caméra La suite en TD 44 Xavier Décoret - INF 583 - Polytechnique 28

Retour sur les maillages Considérations pratiques Stockage Performance Coût des traitements Coûts des transferts CPU/GPU Considérations théoriques Information non structurée Forme mais pas topologie On peut faire mieux que la soupe de triangles 45 Xavier Décoret - INF 583 - Polytechnique 28

Indexed Face Set (1/2) Principe Un tableau décrit les sommets (4 floats) Un tableau décrit les triangles reliant ces sommets (integers) z Vertices Facets 4 5 6 7 y # X Y Z v v1 v2 v3 -.5 -.5 -.5 2 6 4 1 +.5 -.5 -.5 1 3 7 5 2 -.5 +.5 -.5 1 5 4 2 3 +.5 +.5 -.5 4 -.5 -.5 +.5 2 3 7 6 1 3 2 3 x 5 +.5 -.5 +.5 6 -.5 +.5 +.5 4 5 7 6 1 7 +.5 +.5 +.5 46 Xavier Décoret - INF 583 - Polytechnique 28

Indexed Face Set (2/2) Avantages Diminue les coûts de stockage/transfert lors du traitement Encode forme et topologie Inconvénients Pas de contraintes topologiques non manifold T-vertices 6x4x(3 float)= 288 bytes soupe de triangles 8x(3 float)+6x4 short int= 12 bytes indexed face set 8 sommets à projeter contre 24 4 5 6 2 7 3 4 2 7 6 5 3 1 4 2 7 6 5 3 1 1 47 Xavier Décoret - INF 583 - Polytechnique 28

C est fini pour aujourd hui C est l heure de la pause 48 Xavier Décoret - INF 583 - Polytechnique 28