Plan du cours. Fonctions avancées de rendu 3D. Textures. Coordonnées de textures : u,v,s,t. Exemples : textures 1D, 2D, 3D



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

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

Rendu temps réel de mer et de nuages

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

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

GPGPU. Cours de MII 2

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

Gestion de scène pour les moteurs 3D

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

Rendu HDR et illumination par image

LIDAR LAUSANNE Nouvelles données altimétriques sur l agglomération lausannoise par technologie laser aéroporté et ses produits dérivés

Synthèse d images Edmond Boyer

Vers du matériel libre

GMIN 330 Nancy Rodriguez

Modélisation de la vision humaine

Sillage Météo. Notion de sillage

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

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

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

Une bibliothèque de templates pour CUDA

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

Chapitre 3 : Repères et positionnement 3D

Initiation au HPC - Généralités

ProxiLens : Exploration interactive de données multidimensionnelles à partir de leur projection

Recherche d'images par le contenu Application au monitoring Télévisuel à l'institut national de l'audiovisuel

QUIZ B SE PROTÉGER DU SOLEIL, C EST PROTÉGER SA SANTÉ

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

Chp. 4. Minimisation d une fonction d une variable

Exemples d applications. Qu est ce que l Informatique Graphique? Infographie 2D pour l interaction. Introduction

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

PROJET DE MODELISATION CASERNE SERGEANT BLANDAN

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

des outils disponibles et des performances possibles

TP : Gestion d une image au format PGM

Architecture générale des interfaces graphiques. IHM: Fondements des Interfaces Graphiques. Applications. Outils de construction d interfaces

Synthèse d'images. (1) Introduction

5.2 Théorème/Transformée de Fourier a) Théorème

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

.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15

Matrice HP Autonomie des PC Portables Grand Public

INF6304 Interfaces Intelligentes

UNE TECHNIQUE ÉPROUVÉE : LE ZONE SYSTEM


Fiche technique CPU 314SC/DPM (314-6CG13)

Cours de Mécanique du point matériel

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

La création de vêtements, éléments de génétiques, et de maquillage.

Des interfaces textuelles aux interfaces graphiques

Les algorithmes de base du graphisme

Traitement d un AVI avec Iris

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

Réseau Global MIDI Note applicative

Les bases de l optique

Représentation des Nombres

Collection de photos échantillons

Introduction à MATLAB R

Business-Insight Company Presentation

TD Introduction aux SIG avec ArcGis 9

Sensibilité (bas niveaux de lumière, hauts niveaux de lumière) Spectre de sensibilité : visible ( nm) mais aussi IR, UV, RX

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

WORDPRESS : réaliser un site web

Ce dont nous avons besoin pour suivre ce tutorial :

Introduction à la présentation graphique avec xmgrace

Le traitement du 5ème concours A.I.P. pour l objet SH2-155 de Franck JOBARD

Structure du format BMP, sa lecture, sa construction et son écriture

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

TP SIN Traitement d image

Chapitre II : Infographie et bibliothèques graphiques

Ver: FH100. GeForce TM Séries Manuel d Utilisateur

Fonctions de plusieurs variables

Virtual Universe aperçu numéro 1

Pré-requis installation

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

Enjeux mathématiques et Statistiques du Big Data

. Plan du cours. . Architecture: Fermi ( ), Kepler (12-?)

Algorithme. Table des matières

Planche n o 22. Fonctions de plusieurs variables. Corrigé

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

Franck VAUTIER, Jean-Pierre TOUMAZET, Erwan ROUSSEL, Marlène FAURE, Mohamed ABADI, Marta FLOREZ, Bertrand DOUSTEYSSIER

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

BeLux Piscine EMINENCE 10m / 5m

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

Conception des systèmes répartis

Apprendre en pratique - dès le début.

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

Programmation linéaire

Prise en main du logiciel de SIG MapInfo

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

Créer une présentation avec

LOT N 1 : ORDINATEURS BORDEREAU DE PRIX IDENTIFICATION DU FOURNISSEUR. Code DESIGNATION QTE PU HT EN EURO MONTANT TOTAL HT EN EURO MONTANT TTC EN EURO

Géométrie discrète Chapitre V

µrv : Realité Virtuelle

Internet Protocol. «La couche IP du réseau Internet»

Architecture des ordinateurs

Contrôle Non Destructif : Implantation d'algorithmes sur GPU et multi-coeurs. Gilles Rougeron CEA/LIST Département Imagerie Simulation et Contrôle

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

Virtual Universe Pro V2 Manuel de l Utilisateur (C) 2013 IRAI. Manuel Utilisateur VIRTUAL UNIVERSE PRO V2 Page 1

Transcription:

Fonctions avancées de rendu 3D Gilles Debunne DEA IVR 2004 Principe Matrice de texture Mipmapping Textures d environnement Fonctions avancées de rendu 3D Gilles Debunne 2004 2 Textures Initialisation de la texture glenable(gl_texture_2d); glgentextures(1,&texid); glteximage2d(gl_texture_2d, 0,GL_RGBA,, bits); Choix de la texture courante glbindtexture(gl_texture_2d, texid); Paramètres (répétition, interpolation ) gltexparameteri(gl_texture_2d,, ) Mélange avec les couleurs des faces gltexenvf(gl_texture_env,gl_texture_env_mode, GL_MODULATE/BLEND/REPLACE/DECAL); Fonctions avancées de rendu 3D Gilles Debunne 2004 3 Coordonnées de textures : u,v,s,t Spécifiées pour chaque sommet gltexcoord2f(u,v); glvertex3f(x,y,z); Points à coordonnées multiples Nécéssaire à la frontière entre deux textures Génération automatique possible Texture d environnement (SPHERE_MAP) Filtrage par la matrice de texture textureviewer Fonctions avancées de rendu 3D Gilles Debunne 2004 4 Exemples : textures 1D, 2D, 3D 1D : u est un potentiel sur une surface Intérêt : pas de mélange de couleurs Applications : courbes de niveau, isovaleurs Interpolation des coordonnées Prise en compte du Z 2D : Ajout de détails 3D : Marbre, bois, Fonctions avancées de rendu 3D Gilles Debunne 2004 5 Fonctions avancées de rendu 3D Gilles Debunne 2004 6

Intêret de la correction Pixel plus petit que le texel Paramètre GL_TEXTURE_MAG_FILTER Espace écran Espace texure Non bijection entre texels et pixels Fonctions avancées de rendu 3D Gilles Debunne 2004 7 Couleur du texel le plus proche GL_NEAREST Filtrage bi-linéaire GL_LINEAR Fonctions avancées de rendu 3D Gilles Debunne 2004 8 Plusieurs texels dans le même pixel Paramètre GL_TEXTURE_MIN_FILTER Espace écran Espace texure Mipmapping Hiérarchie de textures Evite le clignotement (aliassage) Préfiltrage des couleurs Génération automatique ou manuelle glubuild2dmipmaps( )! Il faut spécifier tous les niveaux! Fonctions avancées de rendu 3D Gilles Debunne 2004 9 Amélioration par filtrage anisotrope : Plusieurs échantillons par pixel Fonctions avancées de rendu 3D Gilles Debunne 2004 10 Matrice de texture Après GL_MODELVIEW et GL_PROJECTION glmatrixmode(gl_texture) S applique sur u,v,s,t Nombreuses applications possibles Ex : Projection inverse d une diapositive u,v,s,t = x,y,z,w Matrice = matrice de la projection Résultat : u,v correspondant Déformation de la perspective, Fonctions avancées de rendu 3D Gilles Debunne 2004 11 Textures d environnement Calcul des coordonnées du rayon réfléchi n glenable(gl_texture_gen_x) gltexgeni(gl_x,gl_texture_gen_mode,gl_sphere_map) Avec X = S et T Calcul faux (cos), la texture doit compenser Fonctions avancées de rendu 3D Gilles Debunne 2004 12

Cartes cubiques Extension des textures d environnement 6 textures, sur un cube autour de la scène Permet de tourner autour de l objet Aussi : normalisation de vecteurs v = (x,y,z) (r,g,b) = (x,y,z) / v Fonctions avancées de rendu 3D Gilles Debunne 2004 13 Fonctions avancées de rendu 3D Gilles Debunne 2004 14 Transparence α=opacité Combinaison des couleurs Fragment dessiné c 1 =(r 1,g 1,b 1,α 1 ) 0 1 Couleur actuelle du pixel c 2 =(r 2,g 2,b 2,α 2 ) c = α 1 c 1 + (1-α 1 ) c 2 Différentes fonctions de mélange glblendfunc(source, dest); glenable(gl_blend); Buffer RGBA non nécessaire (en back to front) Transparence : difficultés Limitations Approximation de la physique Rendu de l arrière vers l avant Sauf si une seule épaisseur est transparente Mauvaise fonction de mélange par défaut! Utiliser glblendfunc(α src, 1-α src ); ou mieux (si toutes les couleurs sont premultiplied alpha) glblendfunc(1, 1); Fonctions avancées de rendu 3D Gilles Debunne 2004 15 Fonctions avancées de rendu 3D Gilles Debunne 2004 16 Le pipeline graphique Principe Alpha Stencil Fonctions avancées de rendu 3D Gilles Debunne 2004 17 CPU Bus GPU Textures Geometric Engine Primitives Projection Éclairage Clipping 2D+z, u,v, couleur Rasterisation Interpolation par pixel Fragment Raster Engine Pixel coloré Tests additionnels Fonctions avancées de rendu 3D Gilles Debunne 2004 18

Tests additionnels des fragments Choix du test glbufferfunc( ) Condition d élimination d un fragment Résultat du test glbufferop( ) Que se passe-t-il pour les fragments qui passent? Mise à jour du buffer, de la couleur Exemple : Alpha Test glalphafunc(gl_greater, 0.0); Opacité entre 0 et 255 Valeur du Z modifiée ssi α>0 Fragment rejeté sinon Les Buffer concernés (dans l ordre) Alpha Buffer Stencil Buffer Z Buffer glenable(gl_alpha_test) glenable(gl_stencil_test) glenable(gl_depth_test) Fonctions avancées de rendu 3D Gilles Debunne 2004 19 Fonctions avancées de rendu 3D Gilles Debunne 2004 20 Exemple : Stencil Buffer Mise à jour d un pochoir lors du rendu Mise à jour aussi quand Z ou stencil échoue Valeurs vues comme des entiers ou des bits Un automate à états finis par pixels Applications Mirroirs, Ombres Masque pour des filtrages d images (souris ) Nombre de polygones sous chaque pixel Color matrix Multi-passes, cartes de lumières Fonctions avancées de rendu 3D Gilles Debunne 2004 21 Fonctions avancées de rendu 3D Gilles Debunne 2004 22 Modification de couleur Filtre appliqué lors du rendu A la couleur du fragment et /ou de la texture Deux types de filtres Matrice de couleur (4x4) appliquée à r,g,b,a glcolortable r =f r (r), g =f g (g), b =f b (b) Application Modification de teinte Couleur selon la distance Cartes de densités (muscles, vaisseaux, ) Fonctions avancées de rendu 3D Gilles Debunne 2004 23 Rendu multipasses Combinaison de couleurs de pixels glblendfunc(source, dest); glblendequation(+, *, min, max, ); Zone éventuellement limitée par le stencil buffer Surcout lié au nombre de passes Supprimer les options inutiles des passes >1 (LIGHTING,SMOOTH_SHADING, Z Test, ) Applications : multi-texture, reflets, ombres.. Fonctions avancées de rendu 3D Gilles Debunne 2004 24

Exemple : cartes de lumière * = Eclairage précalculé gltexenvf(gl_texture_env, GL_TEXTURE_ENV_MODE, GL_MODULATE); Fonctions avancées de rendu 3D Gilles Debunne 2004 25 Accélerer le rendu Problèmes classiques Fonctions avancées de rendu 3D Gilles Debunne 2004 26 Les goulots d étranglement Optimisations Application Supprimer les ordres GL Bus Limiter le débit : Display List, Strips, Vertex arrays Vertex Shader N afficher que quelques points par objet Pixel Shader Modifier la taille de la fenêtre, le nb de calculs par pixel GL_CULL_FACES (50% du Raster) TriangleStrip, TriangleFan Display Lists, Vertex Buffer Objects glcolormaterial(gl_front_and_back, ) Préférer glmaterial si peu de modifications Lumières à l infini, éviter les spots Options inutiles du multi-passes Fonctions avancées de rendu 3D Gilles Debunne 2004 27 Fonctions avancées de rendu 3D Gilles Debunne 2004 28 Ça ne marche pas! Ça ne marche toujours pas! Caméra mal placée par les transformations Pas de couleur ou de normale définie Normales transformées par un glscale glenable(gl_rescale_normal); (gl >= 1.2) Géométrie à l envers et CULL_FACE Dernier u,v à 0,0 ou normale vers le fond Oubli de glloadidentity() GL_COLOR_MATERIAL activé (ou non) Fonctions avancées de rendu 3D Gilles Debunne 2004 29 Les lumières subissent la GL_MODELVIEW glblendfunc est mal choisie par défaut Le z lu dans le frame buffer n est pas linéaire Les polygones sont triangulés interpolation Changement de MatrixMode entre temps Taille de texture non puissance de 2 Manque un niveau de mipmap Transfos dans GL_PROJECTION et brouillard Fonctions avancées de rendu 3D Gilles Debunne 2004 30

Vertex & Pixel shaders Applications et futur Fonctions avancées de rendu 3D Gilles Debunne 2004 31 Pipeline graphique programmable GPU de plus en plus puissant : SIMD 10G pixels / sec 800M points / sec Les opérations deviennent programmables nvidia vs ATI Primitives Vertex shader Rasterization Pixel shader Tests additionnels Frame buffer Fonctions avancées de rendu 3D Gilles Debunne 2004 32 Vertex shader Pixel shader Transformation géométrique Interpolation, morphing, Souplesse d utilisation Ex : couleur = normale Matrices de transformation Données utilisateur Position Normale Coordonnées de texture Couleur Autres attributs Indirections dans les textures Calculs sur ces valeurs Applications Performances, souplesse Matériaux complexes (Phong, bump) Textures Couleurs interpolées Coord. Tex. interpolées Vertex shader Pixel shader Point projeté Coordonnées de texture Couleur Fonctions avancées de rendu 3D Gilles Debunne 2004 33 Couleur finale Fonctions avancées de rendu 3D Gilles Debunne 2004 34 Les cartes programmables Evolution très rapide ATI Radeon 9800, nvidia GeForce 6 Shader par langages haut niveau HLSL (DirectX), GLSL (opengl), cg, Le futur Plus de : mémoire, vitesse, bande passante Des langages unifiés de haut niveau De la 3D partout (PDA, voitures, maison...) Limitations Types de calculs, indirections dans les textures Souplesse des programmes : SIMD synchro Nombre d instructions : mémoire et vitesse Fonctions avancées de rendu 3D Gilles Debunne 2004 35 Fonctions avancées de rendu 3D Gilles Debunne 2004 36