Introduction à la notion Pipeline Graphique (initiation)



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

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

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

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

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

Rendu temps réel de mer et de nuages

PROJET DE MODELISATION CASERNE SERGEANT BLANDAN

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

Rendu HDR et illumination par image

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


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

Eternelle question, mais attention aux arnaques Question qui est souvent mise en premier plan => ce n est pas une bonne idée

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

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

Modules Multimédia PAO (Adobe)

Gestion de scène pour les moteurs 3D

Initiation à la librairie graphique VTK

Vers du matériel libre

Chapitre 3 : Repères et positionnement 3D

nom : Collège Ste Clotilde

6.4. Les Ombres Raytracées (Raytraced Shadows) Shading Lamp Shadow and Spot Hemi Spot Sun Sun Scene F10 Shadow Render Ray Ray Shadow Shadow and Spot

Cours de Mécanique du point matériel

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Virtual Universe aperçu numéro 1

modélisation solide et dessin technique

Groupe Eyrolles, 2006, ISBN :

á Surveillance en temps réel á Contrôle PTZ á Enregistrement

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Analyse d images. Edmond.Boyer@imag.fr. Edmond Boyer UFRIMA 1

CYCLE 3D. Certification RNCP "Lead Infographiste 2D/3D" Niveau II - Bac +3

Introduction à MATLAB R

MUNIA Manuel de l'utilisateur

Licence Sciences et Technologies Examen janvier 2010

Représentation des Nombres

Styler un document sous OpenOffice 4.0

L analyse d images regroupe plusieurs disciplines que l on classe en deux catégories :

Machines virtuelles Cours 1 : Introduction

Programme de formation Photoshop : Initiation 24 heures de formation (3 jours) 1/2

Support de TD ArcGIS Introduction à l automatisation et au développement avec ArcGIS 10.1 JEAN-MARC GILLIOT e année ingénieur

Structures algébriques

Codage d information. Codage d information : -Définition-

Cours IV Mise en orbite

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

GL BE FLYER. Chef de projet de l équipe : SCIONICO Pierre

Plan du cours Cours théoriques. 29 septembre 2014

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES

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

Items étudiés dans le CHAPITRE N5. 7 et 9 p 129 D14 Déterminer par le calcul l'antécédent d'un nombre par une fonction linéaire

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

MEMENTO D'UTILISATION Du T.N.I. SmartBoard (Version )

Présentation du tableau blanc interactif Interwrite


Mémoire. Rendu 3D temps-réel de grands objets. Benoît Bossavit Stéphane Romero-Romero Frédérick Roy Romain Vergne. Vendredi 07 Avril 2006

Traitement numérique de l'image. Raphaël Isdant

Manipulateurs Pleinement Parallèles

Les nouveautés de Femap 11.1

Logiciel SCRATCH FICHE 02

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

AutoForm plus R6 : Besoins systèmes

Master IAD Module PS. Reconnaissance de la parole (suite) Alignement temporel et Programmation dynamique. Gaël RICHARD Février 2008

des outils disponibles et des performances possibles

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

UE Programmation Impérative Licence 2ème Année

GMIN 330 Nancy Rodriguez

Système d information géographique SavGIS 3.Démarrer avec SavGIS Installer et démarrer SavGIS

Comment optimiser dans ImageReady?

Connecter un PC sur une TV.

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

31. OOo Draw Réglages propres à Draw

Algorithme. Table des matières

Sujet. calculatrice: autorisée durée: 4 heures

Logiciel de Base. I. Représentation des nombres

Structure de base d un ordinateur

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

Cours Informatique Master STEP

Synoptique des icônes Interwrite Workspace

Programmation linéaire

Guide d utilisation de fonctionnalités avancées de Beyond 20/20 (application à des données départementales issues de Sit@del2)

Q6 : Comment calcule t-on l intensité sonore à partir du niveau d intensité?

Rappels Entrées -Sorties

Matériel & Logiciels (Hardware & Software)

OpenOffice.org IMPRESS. Notes de cours Novembre 2005 Version 1.0

Guide d'utilisation GRAPHISOFT BIMx pour ArchiCAD 17

FUSION DE CARTES DE PROFONDEURS EN PHOTOGRAMMETRIE ARCHITECTURALE

Rappels sur les suites - Algorithme

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

COMMUNICATEUR BLISS COMMANDE PAR UN SENSEUR DE POSITION DE L'OEIL

ENVOI SIMPLE (SMS)...

TITRE PARTIE TITRE SECTION. Faire des anaglyphes avec CatiaV5

Ce dont nous avons besoin pour suivre ce tutorial :


1 Définition. 2 Systèmes matériels et solides. 3 Les actions mécaniques. Le système matériel : Il peut être un ensemble.un sous-ensemble..

TP, première séquence d exercices.

Écrit par Riphur Riphur.net

Développement d un moteur de jeu vidéo pour la console Nintendo Wii U et portage d un jeu

Transcription:

DENNE Introduction à la notion Pipeline Graphique (initiation) Année universitaire 2004-2005 Pascal Mignot Pascal.Mignot@univ-reims.fr

DENNE Objectifs préparation au cours: d OpenGL (initiation) de DirectX (programmation multimédia et synthèse d images) notions introduites: complément de géométrie pipeline graphique fixe pipeline graphique variable

nification de l écriture U DENNE des transformations Transformations courantes en synthèse: P =P+V où V est un vecteur (translation) P =A.P où A est une matrice 3x3 (rotation, échelle,...) P =d.p/z où P=(x,y,z) et d scalaire (mise en perspective) problème: comment calculer la composition d un grand nombre de transformations? solution: l espace homogène (4D) 1. Tout point P=(x,y,z) 3D s écrit dans cet espace P w =(x,y,z,1). 2. Toutes les transformations T peuvent s écrire sous la forme: T = A C B 1 A matrice 3x3 (rotation,...) B vecteur (translation) C vecteur ligne (projection) et représentent la transformation P = (A.P + B) / (C.P + 1). En général, C=0 sauf pour la mise en perspective. 3. Composition de transformations = multiplication de matrices 4D.

DENNE Première approche: transformations affines: P = A.P + B P ' A = B P. criture et gestion des transformations = A. P + B 1 0 1 1 1 composition de transformations: soit P w un point, P w =T 1. P w P w =T 2. P w = T 2. T 1. P w =(T 2. T 1 ). P w La transformation finale est T= T 2. T 1 (ordre de droite à gauche). On peut ainsi accumuler dans une seule matrice 4D un nombre quelconque de transformations, et l utiliser pour transformer des points 3D. Les cartes graphiques gèrent toutes les transformations dans l espace homogènes. Détails: et bientôt vous aussi... au second semestre.

DENNE Couleur et alpha Les couleurs sont codées sous forme d un triplet GB=(rouge,vert,bleu). On introduit en plus la notion de transparence (appelé alpha α). α=0 : couleur transparente. α=1 : couleur opaque. Le mélange d une couleur C 1 est mélangée avec une couleur C 2 de transparence α est calculée avec: C = α.c 2 + (1-α).C 1 α=1 α=0.66 α=0.33 α=0 Le alpha peut être utilisé pour d autres types de mélange. Les couleurs sur une carte 3D peuvent être codées sur 16 bits (5G6B5, A15G5B5), 24 bits (8G8B8), 32 bits (A88G8B8, A210G10B10).

DENNE Pipeline Graphique Définition De façon généraliste: suite des traitements appliqués à un objet (ou à un ensemble d objets) géométrique(s) dans le but d en obtenir le rendu. En entrée: un objet géométrique 3D (propriétés géométriques et matérielles). En sortie: une image (2D). Sur une carte graphique: objet 3D = défini par des facettes rendu 3D = avec un z-buffer

DENNE Pipeline Graphique Entrée du pipeline définition d un tableau de facettes: tableau de sommets: groupe de 3 sommets = une facette l ordre des sommets oriente la facette tableau de sommets indexés: tableau de sommets + tableau d index l ordre des indices oriente la facette définition d un sommet: sommet = structure (au sens struct du C). géométrie: position, normale, couleur diffuse, spéculaire. coordonnées de «texture» : pour accès à des fonctionnelles 1D à 4D.

DENNE Pipeline graphique les 3 étapes Objet Géométrique Pipeline Géométrique traitement de chaque sommet. Mélange Pixel-Textures calcul de la valeur des pixels associée à la facette. asterization mélange entre les pixels de la facette et ceux déjà présents sur l écran. Pipeline Géométrique Mélange Pixel & Textures asterization Plus de détail sur ces étapes. Image

DENNE Pipeline graphique sortie du pipeline Note: l'utilisation d'un seul tampon génère des déchirements de l'image (Tearing) si le tampon est affiché à l'écran au moment où on est entrain de le mettre à jour (csq: mélange des deux images). sinon, on est obligé de générer les images au même rythme que le vitesse de rafraîchissement de l écran. L affichage correct d une image nécessite donc au moins deux tampons: le premier contient ce qui est actuellement affiché à l'écran (FrontBuffer). le second destiné à accueillir l'image suivante à afficher (BackBuffer). Le rafraîchissement de l image affichée se fait: soit par échange (swap: le Frontbuffer devient le Backbuffer et vice-versa), soit par copie (réalisable entre deux rafraichissements).

DENNE Pipeline graphique Pipeline Géométrique Pour chaque sommet: transformation géométrique des sommets: changement de repère (observateur, repère local) mise en perspective et projection évaluation de quantités: luminance, génération de coordonnées de texture (texgen),... Ce calcul a lieu en chaque sommet et indépendamment les uns des autres. A la fin de cette phase, les sommets sont assemblés en facettes (=triangle setup). pour chaque facette, on génère la liste des pixels associés sur l écran. emarque: cette étape du pipeline graphique est aussi connue sous le nom de TnL (Transformation and Lighting).

DENNE Pipeline graphique Pipeline Géométrique appels sur les repères: Transformation globale Transformation d observation (une par objet) (une par image) epère local epère global epère de l observateur Plan de l écran (une par image) Mise en perpective & Projection

DENNE Pipeline graphique Pipeline Géométrique Transformations géométriques: transformation globale: cette transformation amène l objet depuis son repère local dans le repère global de la scène. transformation d observation: cette transformation passe du repère global au repère de l observateur (aligne l axe de vision avec l axe z). transformation de projection: cette transformation effectue la mise en perspective et la projection dans le plan de l écran. La composition de ces trois transformation amène un objet de son repère local dans le repère de l écran. Evaluation de la luminance: Le calcul de l éclairage se fait (par défaut) avec le modèle de rendu de Blinn-Phong (=modèle de rendu de Phong légèrement modifié). On calcule la luminance diffuse et spéculaire (indépendamment).

DENNE Pipeline graphique Mélange Pixel & Textures Pour chaque pixel de chaque facette, interpolation au pixel des valeurs aux sommets de la facette (couleurs, coordonnées de texture,...). par défaut, ombrage de Gouraud. avec l échantillonneur, lecture des textures aux coordonnées interpolées. mélange des couleurs diffuses, spéculaires et de la (ou des) texture(s). addition (ajout de contribution), multiplication (pondération de contribution),... Une fois ce calcul fait, on obtient un pixel texturé et éclairé (= un texel). Pour l ensemble des pixels d une facette, on obtient à la fin de cette étape, l ensemble des texels tels qu ils seraient affichés indépendamment de ce qui est déjà présent à l écran.

DENNE Pipeline graphique Mélange Pixel & Textures Principe du texturage espace géométrique P 1 Des coordonnées de texture Qi associées à chaque sommet Pi sont absolument nécessaires. note: il est possible d avoir dans la structure de sommets plusieurs coordonnées de texture différentes. En chaque pixel, les coordonnées de texture sont interpolées à partir des valeurs aux sommets. La texture peinte sur la facette (P 1, P 2, P 3 ) et celle contenue dans le triangle (Q 1, Q 2, Q 3 ) de l espace de la texture. P 2 P 3 espace de la texture 1 Q 1 Q 2 Q 0 3 0 1 facette peinte dans l'espace géométrique Déformation de la texture: si les coordonnées sont mal choisies. si la texture est inadaptée à la surface.

DENNE Pipeline graphique Mélange Pixel & Textures : exemple ( diffus x décalage )+( spéculaire x brillance )= bumpmap decal bumpmap reflexion map

DENNE Pipeline graphique asterization Phase durant laquelle les texels de chaque facette sont mélangés avec les pixels déjà présent sur l image de rendu (backbuffer). Cette phase fait intervenir: le alpha le tampon de profondeur (z-buffer) le pochoir (stencil buffer), voir ci-après A partir de ceux-ci ont détermine: s il faut mettre à jour le backbuffer. en fonction du z-buffer et du stencil buffer au pixel courant. comment le mettre à jour. en fonction de la valeur de alpha du texel et de l opération de mise à jour.

DENNE Pipeline graphique asterization Qu est-ce qu un pochoir? buffer supplémentaire (4 ou 8 bits) directement associé au z-buffer. son contenu peut être utilisé pour modifier le comportement du z-buffer. un test spécifique est attaché au pochoir. Utilisation du z-stencil buffer opérations si stencil_test alors si z_test alors stencil_success_operation sinon stencil_zfail_operation sinon stencil_fail_operation les 3 opérations différentes de mise-à-jour du stencil (stencil_*_operation) peuvent être effectuée en fonction des cas. Exemple d utilisation du stencil-buffer compteur de complexité d un pixel masque d affichage gestion des ombres par la méthode des shadow volumes (double sided stencil)...

DENNE Pipeline graphique asterization Lien entre le z-buffer et le stencil buffer le test du z-buffer n est effectué que si le test du stencil à réussi. Mise à jour du backbuffer n a lieu que si le test du z-buffer à réussi dans ce cas, le backbuffer et le zbuffer sont mis à jour*. à partir de: la valeur du texel calculée (alpha compris), la valeur déjà contenue dans le backbuffer, l opération de mélange définie. pour calculer la valeur qui sera écrite dans le backbuffer. Exemples: texel = (α,c 2 ), backbuffer= C 1 C = nouvelle valeur écrite dans le backbuffer C = α.c 2 + (1-α).C 1 C = C 2 * il est possible de désactiver (temporairement) ces mises-à-jour.

DENNE Pipeline Graphique Avancé Pipeline graphique programmable Depuis quelques années, les cartes graphiques deviennent programmables: pipeline géométrique (transformation & TnL) remplacés par un code écrit par l utilisateur. vertex shader mélange pixel & textures remplacés par un code écrit par l utilisateur. pixel shader Applications: permet d améliorer le rendu: ombrages avancés: ombrage de Phong, cartoon shading,... transformations complexes ou dynamiques multiplication des applications sur une carte vidéo 3D: traitement d images sur des flux vidéo, calculs numériques,...

DENNE Modèles de shader et cartes graphiques Modèles de shader: SM 1.* : capacité de programmation très limités. pas de contrôle de flux (pas de tests/boucles). textures difficiles d utilisation. SM 2.* : capacités de programmation étendues (256-512 instructions). programmation étendue des textures. contrôle de flux statique. SM 3.* : capacités de programmation plus étendue (>512 instructions). textures utilisables dans un VS. contrôle de flux dynamique (tests et boucles). Cartes graphiques associées: 2.0 (radeon 9800, X600, X800) 2.0x (nvidia FX 5xxx) 3.0 (nvidia 6800, 6600).

DENNE Pipeline Graphique Avancé Pipeline graphique programmable Exemple du pipeline graphique de la GeForce 6800 Vertex Shader Unit : traitement et transformation des sommets. Triangle Setup : construction et répartition des pixels associés à chaque facette. Shader Instruction Dispatch : répartition des instructions du PS entre les différents pixel pipelines. Pixel Shader Unit : traitement et texturage des pixels. Fragment crossbar : assignation de la sortie des PS à un OP disponible. OP units : opérations de rasterization et de sortie. Z-Cull : Z/stencil Memory Partition : endertargets

DENNE Pipeline Graphique Avancé Tesselator Les cartes graphiques récentes commencent à supporter les primitives de haut niveaux (de type bézier): T-patches (Nvidia) N-patches (ATI, Matrox) Le tesselator créé automatiquement les facettes associées à la primitive (entrée + triangle setup). Autres applications: subdivision: augmentation automatique de la précision d une surface en ajoutant des sommets. displacement mapping: utilisation d une texture pour déformer une surface.

Programmation de U DENNE cartes graphiques à un niveau élémentaire, permet de représenter simplement des objets ou des environnements 3D. difficulté = contrôle de l interface (DirectX ou OpenGL). cours d introduction à OpenGL (le tout début). cours de programmation multimédia (3D + son + vidéo). à un niveau avancé, permet d effectuer des images 3D «qualité cinéma». difficulté = concept de synthèse d images pour l implémentation des shaders correspondants. cours de synthèse d images.

DENNE Fin? Fin des cours théoriques de l initiation à la synthèse Début du cours d OpenGL: la semaine prochaine. Projet: implémentation d un z-buffer avec rendu de Gouraud et Phong (voir le site). projets OpenGL (cf l intervenant). soutenances en janvier. Examen: Une séance de préparation à l examen la dernière semaine de décembre. Le cours est autorisés à l examen (polycopié de cours seulement, pas les corrections de TDs).