Synthèse d'images. (5) Composition de scène

Documents pareils
Synthèse d'images. (1) Introduction

Chapitre 3 : Repères et positionnement 3D

Oscillations libres des systèmes à deux degrés de liberté

F411 - Courbes Paramétrées, Polaires

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

Chapitre 2 : Caractéristiques du mouvement d un solide

Formation à distance Powerpoint Réaliser une présentation - FOAD exemples de parcours -

Programme scientifique Majeure INTELLIGENCE NUMERIQUE. Mentions Image et Réalité Virtuelle Intelligence Artificielle et Robotique

Logiciel Libre Cours 3 Fondements: Génie Logiciel

A. Benali Objectifs du cours

Initiation aux Sciences de l Ingénieur LIVRET DE SECONDE

Programme de la 1ère année

AP1.1 : Montages électroniques élémentaires. Électricité et électronique

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

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Deux disques dans un carré

Synthèse d images Edmond Boyer

INTRODUCTION. A- Modélisation et paramétrage : CHAPITRE I : MODÉLISATION. I. Paramétrage de la position d un solide : (S1) O O1 X

31. OOo Draw Réglages propres à Draw

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

Calcul intégral élémentaire en plusieurs variables

Cours de Mécanique du point matériel

Object Removal by Exemplar-Based Inpainting

Fonctions de deux variables. Mai 2011

Rendu et Eclairage. La Cambre AlICe ( Note technique 3DS MAX décembre 2007 Denis Derycke

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

Chapitre 0 Introduction à la cinématique

JPEG, PNG, PDF, CMJN, HTML, Préparez-vous à communiquer!

Thème Visite virtuelle dans un établissement avec VRML Réalisé par : - M me Alioui Wahiba.

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

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

STATIQUE GRAPHIQUE ET STATIQUE ANALYTIQUE

INFOGRAPHIE. Daniel Thalmann. Ecole Polytechnique Fédérale de Lausanne

Dérivation : Résumé de cours et méthodes

C.F.A.O. : Conception et Fabrication Assistées par Ordinateur.

pcon.planner 6 Préparer et présenter une implantation en toute simplicité

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

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

REALISATION D UN MAILLAGE

EXPERIENCE. Windows/Linux/Mac OpenGL Gtk Tcl SQL VFX Visual C++ gcc.

Détection des points d intérêt et Segmentation des images RGB-D. Présentée par : Bilal Tawbe. Semaine de la recherche de l UQO

Onveutetudierl'equationdierentiellesuivante

Méthodes de quadrature. Polytech Paris-UPMC. - p. 1/48

Cours 7 : Utilisation de modules sous python

GMIN 330 Nancy Rodriguez

Intégrales doubles et triples - M

Banc d études des structures Etude de résistances de matériaux (RDM) et structures mécaniques

Python - introduction à la programmation et calcul scientifique

OFFRE CAO Bijouterie

Generative Structural Analysis (GPS et EST)

Algorithmes pour la planification de mouvements en robotique non-holonome

Ceci est un aperçu du livre "QCAD - Introduction à la conception assistée par ordinateur (CAO)" QCAD

Art of Illusion 2.0: quand Java fait de la très bonne 3D

Initiation au dessin Bitmap

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

Chapitre 6. Fonction réelle d une variable réelle

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

Détection et suivi d'objets dans une séquence d'images par contours actifs

Programme de la classe de première année MPSI

PREMIER PAS EN IMAGE DE SYNTHÈSE

GMEC1311 Dessin d ingénierie. Chapitre 1: Introduction

LES LOIS PHYSIQUES APPLIQUÉES AUX DEUX-ROUES : 1. LA FORCE DE GUIDAGE

Reconnaissance de visages 2.5D par fusion des indices de texture et de profondeur ICI 12/12/12

Chapitre 1 Cinématique du point matériel

L ANALYSE EN COMPOSANTES PRINCIPALES (A.C.P.) Pierre-Louis GONZALEZ

Angles orientés et fonctions circulaires ( En première S )

La révolution SaaS au service de la valorisation de la recherche

10 leçon 2. Leçon n 2 : Contact entre deux solides. Frottement de glissement. Exemples. (PC ou 1 er CU)

DÉVERSEMENT ÉLASTIQUE D UNE POUTRE À SECTION BI-SYMÉTRIQUE SOUMISE À DES MOMENTS D EXTRÉMITÉ ET UNE CHARGE RÉPARTIE OU CONCENTRÉE

SUPPORT DE COURS FLASH CS4

Convers3 Documentation version Par Eric DAVID : vtopo@free.fr

INTELLIGENCE ECONOMIQUE : ENJEUX ET RETOUR D EXPERIENCE PILOTE DANS SEPT PMI DE BOURGOGNE

"Modélisation interactive d'un genou humain"

BACCALAURÉAT TECHNOLOGIQUE Sciences et Technologies de l Industrie et du Développement Durable ENSEIGNEMENTS TECHNOLOGIQUES TRANSVERSAUX

Glissière linéaire à rouleaux

Préparer un état de l art

Environnement. Animation. Interactivité

Introduction à Adobe Illustrator pour la cartographie et la mise en page

Système binaire. Algèbre booléenne

Mario Geiger octobre 08 ÉVAPORATION SOUS VIDE

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

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

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

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

Extrait des Exploitations Pédagogiques

SSNL126 - Flambement élastoplastique d'une poutre droite. Deux modélisations permettent de tester le critère de flambement en élastoplasticité :

DUT. Informatique, orientation Imagerie Numérique. Domaine : Sciences, Technologies, Santé. Mention : Informatique

Un K-espace vectoriel est un ensemble non vide E muni : d une loi de composition interne, c est-à-dire d une application de E E dans E : E E E

Introduction à MATLAB R

TP SIN Traitement d image

L INTEGRATION D UN NOUVEAU COLLABORATEUR

Des interfaces textuelles aux interfaces graphiques

Comment créer un diagramme de Gantt avec OpenOffice.org

CHAPITRE IV Oscillations libres des systèmes à plusieurs degrés de liberté

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

de calibration Master 2: Calibration de modèles: présentation et simulation d

Vue 2D / 3D / Dessin / Cotation Utilise : Logiciel edrawings Fichier.EPRT Dossier Tp-eDrawings

Cours de mathématiques

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

Transcription:

Synthèse d'images (5) Composition de scène Plan de l'exposé : 1- Transformations géométriques 2 - Déformations 3- Opérateurs booléens 4- Hiérarchie d'objets

1. Transformations géométriques Pour construire de nouveaux objets à partir de volumes élémentaires Pour changer le système des coordonnées utilisées pour décrire un objet.

Différents types Translation Homothétie D'après [QUID] p. 278-9 Symétrie orthogonale Symétrie centrale Rotation

Matrices homogènes Opérations matricielles (2D) - Toutes les opérations précédentes se ramènent à la multiplication d'une matrice par le vecteur des coordonnées de départ, SAUF pour la translation (addition de 2 vecteurs) - On va représenter un point P(x,y) par une famille de vecteurs de 3 éléments (x,y,w). W est le facteur d'échelle. Ainsi (x,y,w) et (x/w, y/w, 1) représentent le même point. - Si W=0, on dira que le point est à l'infini Translation x' y' = 1 1 0 d x x 0 1 d y y1 0 0 1 Homothétie x' y' = 1 s x 0 0 x 0 s y 0 y 0 0 1 1 Rotation par rapport à l'origine x' y' = 1 cos sin 0 x sin cos 0 y 0 0 1 1

Exemple de composition On veut faire une rotation de la maison autour du point P1 Suite d'opérations à réaliser : [FOLEY] pp. 208-9 Translation de l'objet à l'origine & Rotation & Translation de l'objet à sa position de départ Matrices résultantes : T(x 1, y 1 )o R( )o T( x 1, y 1 ) 1 0 x 1 cos sin 0 1 0 x 1 = 0 1 y 1 sin cos 0 0 1 y 1 0 0 1 0 0 1 0 0 1 cos sin x 1 (1 cos ) + y 1 sin = sin cos y 1 (1 cos ) x 1 sin 0 0 1 Commutativité pas toujours vérifiée : T.R R.T Attention à l'ordre!!

Translation : Opérations matricielles (3D) x' 1 0 0 d x x y' z' = 0 1 0 d y yz 0 0 1 d z 1 0 0 0 1 1 Homothétie : x' s x 0 0 0 x y' z' = 0 s y 0 0 yz 0 0 s z 0 1 0 0 0 1 1 Rotations par rapports aux axes X, Y et Z Si répère "main droite"!!! θ positif en allant de X à Y R Z ( ) = cos sin 0 0 1 0 0 0 sin cos 0 0 0 0 1 0 R X ( ) = 0 cos sin 0 0 sin cos 0 0 0 0 1 0 0 0 1 cos 0 sin 0 R Y ( ) = 0 1 0 0 sin 0 cos 0 0 0 0 1

Rotation autour d'un axe quelconque : D = d 2 + y 2 cos( ) = d D sin( ) = y D 4- Rotation Rz(θ) de θ sur l'axe des Z 5- Opération inverse de 3 : Rx(-β) 6- Opération inverse de 2 : Ry(α) 1- Translation T(-x1,-y1,-z1) pour amener P1 à l'origine x = x 2 x 1 y = y 2 y 1 z = z 2 z 1 7- Opération inverse de 1 : T(x1,y1,z1) 2- Rotation Ry(-α) autour de l'axe des Y pour amener P'2 dans le plan (O,Y,Z) d = x 2 + z 2 z cos(- ) = d sin(- ) = -x' d 3- Rotation Rx(β) autour de l'axe des X pour amener P''2 sur l'axe des Z

Un exemple : rotation de 60 selon l'axe (0,0,0)-(1,1,1) On a : x = x 2 x 1 = 1 y = y 2 y 1 = 1 z = z 2 z 1 = 1 on a aussi R Z ( 3 ) = 1/ 2 3 / 2 0 0 3 / 2 1/ 2 0 0 0 0 1 0 0 0 0 1 La matrice de transformation est : d = 2 cos(- ) = 1 sin(- ) = -1 2 2 = 4 M = R Y 4 o R X ( )o R 5 Z ( )o R 3 X ( )o R 5 Y 4 1 / 2 0 1/ 2 0 donc R Y ( ) = 0 1 0 0 4 1/ 2 0 1/ 2 0 0 0 0 1 Soit M = 1 2 2 1 0 1 2 2 0 3 2 1 2 0 0 0 0 1 D = 3 cos( ) = 2 3 sin( ) = 1 3 = 5 donc R X ( 5 ) = 1 0 0 0 0 2 / 3 1 / 3 0 0 1 / 3 2 / 3 0 0 0 0 1

Application à un cube : Table des sommets avant rotation : 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 Table des sommets après rotation : 0 0 0 2/3-1/3 2/3-1/3 2/3 2/3 1/3 1/3 4/3 2/3 2/3-1/3 4/3 1/3 1/3 1/3 4/3 1/3 1 1 1

2. Déformations d'objets Des techniques surtout utilisées en animation (donc un peu hors sujet ) Appliquée directement sur la représentation polyédrale => risque : un cube tordu n'est plus un polyèdre à 6 faces => algorithme de subdivision adaptative Appliquée sur des surfaces paramétrées (Bézier, Bspline) => facile, action sur les points de contrôles => possibilité de déformation locale si B-spline Bibliographie : [WATT] chapitre 17, sur l'animation des objets mous.

Déformations non-linéaires (Barr, 1984) La transformation est variable selon chaque point du polyèdre. "tapering" (effilage) : ( x' y' z' ) = ( xf (z) yf (z) z) "twisting" (torsion) : ( x' y' z' ) = R Z ( f (z)) "bending" (pliage)

On se donne : - Une image (une courbe, un polygone ) de départ - Une image d'arrivée Le "morphing" On veut calculer N images intermédiaires Par exemple : par interpolation linéaire x i = x D + i x A x D N +1, idem avec yi et zi [WATT] p. 413

3. Opérateurs booléens [FOLEY] p.535 Différence Union Intersection

Exemples en POV Union de deux sphères union{ sphere { <0, 0, 0>, 1 translate -0.5*x sphere { <0, 0, 0>, 1 translate 0.5*x pigment { Red Intersection de deux sphères (extrusion) intersection { sphere { <0, 0, 0>, 1 translate -0.5*x sphere { <0, 0, 0>, 1 translate 0.5*x pigment { Red

Représentation interne Pour les opérateurs ensemblistes : solide liste de faces solide = ensemble d'éléments de volume [FOLEY] p. 550-1 => suppose une représentation interne adaptée (plus sophistiquée) => nombreuses techniques (surtout pour la CAO) Les "quadtrees" et les "octrees"

Exemple d'opérations booléenes : [FOLEY] p. 553 Les objets et leurs quadtrees : Union Intersection

4. Hiérarchie d'objets La scène peut être décrite par un arbre : Le concept de hiérarchie d'objets graphiques est présent dans toutes les bibliothèques de programmation 3D, ainsi que dans les langages spécialisés Exemple d'un robot : [FOLEY] p. 289

Exemple 1 : POV #declare On veut créer un pendantif : - Structure répétitive : anneau = 2 demi-tores et deux cyclindres - Les anneaux sont pivotés de 90 à chaque fois. // Copyright 1996 by the POV-Ray Team #include "colors.inc" camera { location <0,.1, -25> look_at 0 angle 36 background { color White light_source{ <300, 300, -1000> White #declare Half_Torus = difference { torus { 4,1 sturm rotate x*-90 // so we can see it from the top box { <-5, -5, -1>, <5, 0, 1> Flip_It_Over = x*180 #declare Torus_Translate = 8 #declare Link_Translate = Torus_Translate*2-2*y #declare Chain_Segment = cylinder { <0, 4, 0>, <0, -4, 0>, 1 #declare Chain_Gold = texture { pigment { BrightGold finish { ambient.1 diffuse.4 reflection.25 specular 1 metallic #declare Link = union { object { Half_Torus translate y*torus_translate/2 object { Half_Torus rotate Flip_It_Over translate -y*torus_translate/2 object { Chain_Segment translate x*torus_translate/2 object { Chain_Segment translate -x*torus_translate/2 texture { Chain_Gold #declare Link_Pair = union { object { Link object { Link translate y*link_translate rotate y*90 #declare Chain = union { object { Link_Pair object { Link_Pair translate y*link_translate*2 object { Link_Pair translate y*link_translate*4 object { Link_Pair translate y*link_translate*6 object { Link_Pair translate -y*link_translate*2 object { Link_Pair translate -y*link_translate*4 object { Link_Pair translate -y*link_translate*6 object { Chain scale.1 rotate <0, 45, -45>

Exemple 2 : VRML VRML permet de décrire des objets graphiques (au sens large) et leurs actions : des "nodes". - Les "nodes" sont organisés en une hiérarchie appelée le "scene graph". - Certains "nodes" affectent le comportement des "nodes" suivants ("rotation" ou "material", par exemple) - Le "separator" permet de limiiter la portée de telle ou telle propriété à des parties de la scène. #VRML V1.0 ascii Separator { DirectionalLight { direction 0 0-1 PerspectiveCamera { position -8.6 2.1 5.6 orientation -0.1352-0.9831-0.1233 1.1417 focaldistance 10.84 Separator { # sphere 1 Material { diffusecolor 0.25 0.50 0.25 # Red Translation { translation 3 0 1 Sphere { radius 2.3 Separator { # The blue cube Material { diffusecolor 0 0 1 # Blue Transform { translation -2.4.2 1 rotation 0 1 1.9 Cube {

Représentation interne Exemple pour PHIGS, extrait de [FOLEY] p. 318