8TRD147: Animation et images par ordinateur



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

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

Les algorithmes de base du graphisme

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

IFT3355: Infographie Sujet 6: shading 7 (illumination globale 4)

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

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

GMEC1311 Dessin d ingénierie. Chapitre 1: Introduction

Fonctions de deux variables. Mai 2011

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

Rendu temps réel de mer et de nuages

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

Rendu HDR et illumination par image

Master IMA - UMPC Paris 6 RDMM - Année Fiche de TP

Fibonacci et les paquerettes

Image d un intervalle par une fonction continue

Groupe Eyrolles, 2006, ISBN :

Gestion de scène pour les moteurs 3D

Introduction au maillage pour le calcul scientifique

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

Cercle trigonométrique et mesures d angles

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

Chapitre 3 : Repères et positionnement 3D

Chapitre 2 : Caractéristiques du mouvement d un solide

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

Construction d un cercle tangent à deux cercles donnés.

L utilisation du lidar terrestre en foresterie. Richard Fournier Département de géomatique appliquée

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

Sillage Météo. Notion de sillage

Deux disques dans un carré

Chapitre 4 : Guide de Mouvement et Masque

Chapitre 7. Statistique des échantillons gaussiens. 7.1 Projection de vecteurs gaussiens

Fluorescent ou phosphorescent?

Écrit par Riphur Riphur.net

Ch.G3 : Distances et tangentes

Cours 1 : Qu est-ce que la programmation?

Sommaire. Images Actives Logiciel libre développé par le CRDP de l académie de Versailles 2 Rue Pierre Bourdan Marly le Roi

Tutoriel première utilisation ICEM-CFD. Couche limite et modification du maillage en 2D

Traitement bas-niveau

ÉTUDE DE L EFFICACITÉ DE GÉOGRILLES POUR PRÉVENIR L EFFONDREMENT LOCAL D UNE CHAUSSÉE

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

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

Encryptions, compression et partitionnement des données

T.P. FLUENT. Cours Mécanique des Fluides. 24 février 2006 NAZIH MARZOUQY

Modélisation de la vision humaine

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

Informations détaillées pour l emploi du calculateur TCF sur le 2 e pilier

NOTICE TELESERVICES : Demander un état hypothécaire

Création d articles sur le site web du GSP

Google Adresses. Validez la fiche de votre entreprise ou organisation sur Google Maps

Pop-Art façon Roy Liechtenstein

Par Richard Beauregard. Novembre 2011

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

Détection de têtes dans un nuage de points 3D à l aide d un modèle de mélange sphérique

Chapitre 3. Mesures stationnaires. et théorèmes de convergence

µrv : Realité Virtuelle

Chapitre 22 Optimisation pour diffusion à l'écran, pour le web

Le Dessin Technique.

Création d une SIGNATURE ANIMÉE avec PHOTOFILTRE 7

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

MCMC et approximations en champ moyen pour les modèles de Markov

Introduction au Data-Mining


Introduction à CUDA.

Algorithme des fourmis appliqué à la détection et au suivi de contours dans une image

Choisir entre le détourage plume et le détourage par les couches.

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

I. COMMENT SOUMETTRE VOTRE CANDIDATURE

Fonctions de plusieurs variables

MAP 553 Apprentissage statistique

Réussir. son. référencement. web. Olivier Andrieu. Groupe Eyrolles, 2008, ISBN :

MODULES 3D TAG CLOUD. Par GENIUS AOM

Celestia. 1. Introduction à Celestia (2/7) 1. Introduction à Celestia (1/7) Université du Temps Libre - 08 avril 2008

Biochimie I. Extraction et quantification de l hexokinase dans Saccharomyces cerevisiae 1. Assistants : Tatjana Schwabe Marcy Taylor Gisèle Dewhurst

Résolution d équations non linéaires

GPGPU. Cours de MII 2

Mesure d angles et trigonométrie

Chapitre 4: Dérivée d'une fonction et règles de calcul

Utilisation du client de messagerie Thunderbird

3 Approximation de solutions d équations

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Fiches d aide à l utilisation

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

Programmation linéaire

KWISATZ_TUTO_module_magento novembre 2012 KWISATZ MODULE MAGENTO

V- Manipulations de nombres en binaire

L utilisation d un réseau de neurones pour optimiser la gestion d un firewall

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Représentation des Nombres

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

enquête pour les fautes sur le fond, ce qui est graves pour une encyclopédie.

Manage Yourself. Rapport de planification. Projet de 4ème année informatique. Equipe :

Université Paris-Dauphine DUMI2E 1ère année, Applications

Site Web de paris sportifs

Projet Matlab/Octave : segmentation d'un ballon de couleur dans une image couleur et insertion d'un logo

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

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

Visual Paradigm Contraintes inter-associations

Dragon Naturally Speaking 13

Transcription:

8TRD147: Animation et images par ordinateur SSAO Y. Chiricota Département d informatique et de mathématique Université du Québec à Chicoutimi / Certaines des illustrations de ce document proviennent du livre rouge d OpenGL, des sites developer.apple.com ; opengl.org ; khronos.org ; nvidia.org 8TRD147 UQAC Y. Chiricota(2014) 1

Introduction Le modèle d illumination de Phong est une approximation relativement grossière de la réalité. Dans ce modèle, on utilise le terme ambient (k amb I amb ) dans le calcul de l illumination en un point pour simuler l ensemble de tous les réflexions qui se produisent dans la scène. Il est clair que cette technique donne des résultats qui sont loin de la réalité. Pour obtenir une image plus réaliste, il faudrait tenir compte des réflexions occasionnées par les multiples objets peuplant une scène. Ces réflexions, dont la couleur dépends de l objet frappé par la lumière, affectent normalement tous les objets d une scène. La méthode du lancé de rayon est une approche plus réaliste qui tient compte de cette situation. Cependant, il est actuellement impensable d implémenter cette technique dans le contexte de jeux vidéo car ceux-ci exigent un rendu en temps réel. 8TRD147 UQAC Y. Chiricota(2014) 2

Introduction Cette image image est tirée de Starcraft II. 8TRD147 UQAC Y. Chiricota(2014) 3

Introduction La méthode d occlusion ambiante, plutôt que prendre en compte les rayons qui arrivent au point pour lequel on désire calculer l illumination, procède en considérant la lumière qui n arrive pas à ce point. Bref, on calcule le niveau d occlusion des points en tenant compte de la topologie (forme) des objets géométriques dans le voisinage du point. La figure de gauche représente un objet" pour lequel on considère l obstruction en trois points. Pour cet objet, le point P est moins obstrué" que Q et Q l est moins que R. 8TRD147 UQAC Y. Chiricota(2014) 4

Définition du degré d obstruction d un point Étant donné une scène composée de surfaces (de maillages), le degré d obstruction local d un point P appartenant à une des surfaces σ est défini par le rapport entre, d une part, le nombre de rayon ayant une intersection avec la surface σ et d autre part le nombre total de rayons émanant d une hémisphère centrée en P et dont la base est parallèle au plan tangent à la surface σ au point P. Dans la figure de gauche, les rayons rouges correspondent à de l obstruction, contrairement aux rayons verts. L hémisphère est représenté en bleu. 8TRD147 UQAC Y. Chiricota(2014) 5

Définitions Pour qu il soit possible d implémenter cette idée sur ordinateur, il faut la formaliser quelque peu. Voici donc quelques définitions. On définit la fonction de visibilité d un point dans la direction (vecteur) ω comme suit : { 1 si P est obstrué dans la direction ω V (P, ω) = 0 sinon. La fonction suivante sert à déterminer l occlusion ambiante totale d un point P. AO(P, n) = 1 V (P, ω) max(n ω, 0)dω, π Ω où Ω représente une hémisphère centrée en P dont la base est dans le plan défini par le vecteur n qui est normal à la surface au point P. Intuitivement, on fait la somme dans toutes les directions ω de la fonction de visibilité pondérée par l angle entre le vecteur normal à la surface au point P et la direction ω. 8TRD147 UQAC Y. Chiricota(2014) 6

SSAO Calculer cette intégrale en chaque point d une surface à éclairer demande une quantité d opérations imposante. En effet, il est possible de calculer numériquement cette intégrale, mais à coût élevé puisqu il faut effectuer ce calcul pour chaque point de la scène traité par le VS. Il est cependant possible de simplifier les choses par le calcul d une approximation de la géométrie de la scène basée sur la projection dans l espace écran de la scène. C est la méthode de Screen Space Ambiant Occlusion. Cette méthode est utilisée dans plusieurs jeux tel que Starcraft II et Crysis. Il existe plusieurs variantes de cette méthode, mais la plupart de celles-ci reposent sur le calcul d un tampon de profondeurs/vecteurs normaux (depth/normal map). Ce tampon (qu on nommera le tampon ND) contient la distance entre chaque point de la scène et le vecteur normal à la surface à laquelle appartient le point. 8TRD147 UQAC Y. Chiricota(2014) 7

Tampon ND La figure suivante illustre comment le tampon ND est calculé. La scène est calculée (rendue) comme d habitude à la différence près que plutôt que calculer une image, pour chaque pixel écran, on mémorise dans le tampon ND la distance entre la caméra et le point P de la scène qui est visible. On stocke aussi le vecteur normal à la surface au point P. Ainsi le tampon ND a la même taille que l image écran (le frame buffer). Dans la figure, le trait vert correspond aux valeurs de distance qui seront placées dans le tampon ND. Cette information procure une approximation de la géométrie de la scène vu à partir de la caméra. 8TRD147 UQAC Y. Chiricota(2014) 8

Le tampon ND est calculé à partir de shaders. De plus, on utilise un FBO pour stocker le résultat du calcul. Nous allons maintenant voir un algorithme de SSAO. Notons qu il existe plusieurs variantes de tels algorithmes. 8TRD147 UQAC Y. Chiricota(2014) 9

Algorithme de SSAO 1. Calculer le tampon ND à l aide de shaders. En pratique, le résultat est stocké dans un FBO dont le format est le même que celui de l écran. 2. L objectif de cet étape est le calcul d un tampon AO qui contiendra le niveau d occlusion des points. Cette partie du calcul est effectuée par un deuxième programme (VS+FS) qui reçoit en entrée le tampon ND calculé en (1). On effectue le rendu d un quad qui recouvre l écran, pour chaque pixel écran, on calcule une approximation de l occusion en effectuant un calcul approximatif de l intégrale de la fonction de visibilité sur une hémisphère. Pour ce faire, le tampon ND nous fournit une approximation de la géométrie locale au point 3D qui correspond au pixel. 8TRD147 UQAC Y. Chiricota(2014) 10

Algorithme de SSAO (suite) 2 (suite). La figure suivant illustre comment est approximée l intégrale. On procède par échantillonnage de points aléatoires dans une hémisphère centrée en P et dont la base est perpendiculaire au vecteur normal à la surface. L information du tampon ND nous permet d estimer si un point q est en situation d obstruction ou non. En effet, si la distance entre q et la caméra est supérieure à la valeur stockée dans le tampon ND, q est en situation d occusion. Dans le cas de cette figure, le niveau d occusion du point q serait de 3 7. Plus on utilise de points lors de l échantillonnage, meilleur sera le résultat. Cependant, le coût en terme de temps de calcul sera proportionnel au nombre de points. 8TRD147 UQAC Y. Chiricota(2014) 11

Algorithme de SSAO (suite) 3. La troisième étape consiste à effectuer le rendu en utilisant le tampon AO pour déterminer le terme ambiant dans l illumination des points de la scène. Le tampon AO donne la quantité de lumière ambiante pour chaque pixel de l image finale. 8TRD147 UQAC Y. Chiricota(2014) 12

Exemple de shader pour calcul du tampon ND Voici un exemple de shaders pour calculer le tampon ND. / / VS / / Calcul de l a t e x t u r e ND. varying f l o a t depth ; varying vec3 normal ; void main ( void ) { normal = gl_normal. xyz ; depth = ( gl_modelviewmatrix gl_ Vertex ). z ; g l _ P o s i t i o n = f t r a n s f o r m ( ) ; } 8TRD147 UQAC Y. Chiricota(2014) 13

Exemple de shader pour calcul du tampon ND / / FS / / Calcul de l a t e x t u r e ND. uniform f l o a t znear ; uniform f l o a t zfar ; varying f l o a t depth ; varying vec3 normal ; void main ( void ) { / / Normalisation de l a val eur entre 0 et 1. f l o a t n_depth = ( depth znear ) / ( zfar znear ) ; } gl_ FragColor = vec4 ( normal, n_depth ) ; 8TRD147 UQAC Y. Chiricota(2014) 14

Avantages de cette méthode. Le calcul ne dépend que partiellement de la complexité géométrique de la scène. L algorithme produit de bons résultats. Il est bien adapté à l implémentation à l aide de shader, d où un gain de performance. 8TRD147 UQAC Y. Chiricota(2014) 15

Cas problèmes L algorithme de SSAO reste toutefois une approche approximative de la réalité. En particulier, certains configurations peuvent causer problème comme l illustre la figure suivante. Le point P est plus obstrué que la méthode calculera. 8TRD147 UQAC Y. Chiricota(2014) 16

Effet de l échantillonnage L échantillonnage produit un effet de granularité sur le tampon ND comme l illustre la figure suivante. L mage précédente (ainsi que celles qui suivent) est tirée de : Dominic Filion et al., "Starcraft II Effects & Techniques", Blizzard Entertainment, SIGGRAH 2008. 8TRD147 UQAC Y. Chiricota(2014) 17

Effet de l échantillonnage Voici un détail de l image précédente. 8TRD147 UQAC Y. Chiricota(2014) 18

Effet de l échantillonnage Cet effet de granularité indésirable peut être diminué en appliquant un filtre à l image. Voici ce que donne l application d un filtre Gaussien dont le rayon est de 2 pixels. 8TRD147 UQAC Y. Chiricota(2014) 19

L image finale. 8TRD147 UQAC Y. Chiricota(2014) 20