Rendu temps réel de mer et de nuages



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

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

Groupe Eyrolles, 2006, ISBN :

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

GMIN 330 Nancy Rodriguez

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

Ladibug TM 2.0 Logiciel de présentation visuel d'image Manuel de l utilisateur - Français

Communications immersives : Enjeux et perspectives

PROJET DE MODELISATION CASERNE SERGEANT BLANDAN

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

Gestion de scène pour les moteurs 3D

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

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

Glossaire technique Veditec

Rendu HDR et illumination par image

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

TP Blender n 3 : Luxrender : Rendu d une scène d extérieur

Ce dont nous avons besoin pour suivre ce tutorial :

Equation LIDAR : exp 2 Equation RADAR :

Détection en environnement non-gaussien Cas du fouillis de mer et extension aux milieux

Les tablettes. Présentation tablettes Descriptif Fournisseurs Caractéristiques Comparatifs Conseils Perspectives Démonstration

UNE TECHNIQUE ÉPROUVÉE : LE ZONE SYSTEM

EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG

Sillage Météo. Notion de sillage

Collection de photos échantillons

Optimiser les s marketing Les points essentiels

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

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.

L analyse boursière avec Scilab

Dossier technique. Présentation du bus DMX et Utilisation des options EL13 / EL14 ERM AUTOMATISMES INDUSTRIELS 1 LE PROTOCOLE DMX 2

Rapport de stage. Développement d un logiciel de vidéoconférence : Enjeux 3. Guillaume DOTT 2009

Business Intelligence

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

Caractéristiques principales:

Création intuitive des éléments d un paysage

Hiver 2013 IMN 259. Introduction à l analyse d images. Par Pierre-Marc Jodoin

Outil d aide au choix Serveurs Lot 4 Marché Groupement de Recherche

TD : Codage des images

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

Comprendre l Univers grâce aux messages de la lumière

Activité 1 : Rayonnements et absorption par l'atmosphère - Correction

Pour les futurs développeurs Sommaire

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

TP SIN Traitement d image

µrv : Realité Virtuelle

imovie 11 Créer un projet Menu / Fichier / Nouveau projet... Choisir le format : Standard (16/9). Importer des «!plans!» 1.

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

Les correcteurs accorderont une importance particulière à la rigueur des raisonnements et aux représentations graphiques demandées.

SQL Server 2012 et SQL Server 2014

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

PRESENTATION AT270 JUILLET 2012

LES CARACTERISTIQUES DES SUPPORTS DE TRANSMISSION

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

Test Essentielb Smart tab 7800 : Une Bonne Surprise

Opérations de base sur ImageJ

*Offre limitée au stock disponible - Prix affichés basés sur une TVA française de 19.6%.

Principes d AdWords. Quelques mots de présentation. Une audience large : les réseaux de ciblage. Réseau de recherche

Vers du matériel libre

Paysage de nuages. Objectif. Matériel. Vue d ensemble. Résultats didactiques. Durée. Niveau

LYCEE : cycle de détermination (2nde) Technologie S INFORMER : Organiser l information Metttre en relation des informations de nature différente

L équipement choisit devra être nomade, il servira aux visiteurs en déplacements et sera donc sujets à des limitations de tailles et de poids.

& collaborative workspace. the new multitouch CONNECT & SHARE COLLABORATE BETTER & DECIDE FASTER CREATE & INNOVATE SAVE & TAKE THE DATA WITH YOU

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

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

Guide d'utilisation GRAPHISOFT BIMx pour ArchiCAD 17

Principes généraux de la modélisation de la dispersion atmosphérique

DIPLÔME INTERUNIVERSITAIRE D ECHOGRAPHIE. Examen du Tronc Commun sous forme de QCM. Janvier h à 16 h

Préconisations Portail clients SIGMA

SPOT4 (Take 5) : Sentinel-2 avec deux ans d avance

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

Chapitre 02. La lumière des étoiles. Exercices :

La visio-conférence holographique : Pourquoi? Comment?

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)


Marketing Efficiency Cloud : All-in-One, End-to-End

Actions de réduction de bruit sur un moteur poids lourd

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

Synthèse d images Edmond Boyer

Initiation à Excel. Frédéric Gava (MCF)

v Sygic, a.s. All rights reserverd. Manuel utilisateur

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

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

MOTORISATION DIRECTDRIVE POUR NOS TELESCOPES. Par C.CAVADORE ALCOR-SYSTEM WETAL Nov

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

Exigences système Edition & Imprimeries de labeur

Exclusivite magasin DISTRICOUNT. with you. with you. always. always

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

SIMULATION DU PROCÉDÉ DE FABRICATION DIRECTE DE PIÈCES THERMOPLASTIQUES PAR FUSION LASER DE POUDRE

Fête de la science Initiation au traitement des images

SIMULATION NUMERIQUE DU FLUX D AIR EN BLOC OPÉRATOIRE

FICHE TECHNIQUE AUDITORIUM EXTENSION S-3

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

Panneau solaire ALDEN

Architecture des Ordinateurs. Partie II:

Banques de prêt Exemples avec prix indicatifs 2012/04

Présentation des projets de recherche BLOWOUT et METANE. Journée technique du Cedre. Brest 14 novembre 2013

Transcription:

Rendu temps réel de mer et de nuages Linares Antonin, Boyer Julien 17 décembre 2008 1

Résumé Nous allons traiter dans ce document les différentes méthodes explorées afin de parvenir à un rendu en temps réel d une mer et de nuages. Après une rapide introduction de l existant nous verrons dans une première partie la démarche suivie puis les résultats obtenus. Enfin viendront les améliorations qu il serait possible d apporter au projet suivi d une conclusion. 2

Table des matières 1 Introduction 4 2 L existant 4 3 Les nuages 5 3.1 Modélisation................................... 5 3.2 Rendu...................................... 6 4 Modélisation de la mer 8 5 Performances 11 6 Problèmes rencontrés 11 6.1 Nuages...................................... 12 6.2 Mer....................................... 12 7 Améliorations possibles 12 7.1 Nuages...................................... 12 7.2 Mer....................................... 12 7.3 Skybox...................................... 13 8 Divers 13 9 Conclusion 13 3

1 Introduction Le rendu en temps réel de scènes extérieures est une problématique récurrente dans le monde de la 3D. En effet les phénomènes atmosphériques tels que les nuages, la simulation de fluides, de fumée, le rendu de végétaux ou même l absorption de la lumière dans l atmosphère sont des exemples de traitements qui coûtent très cher en terme de calcul et dont les modélisations mathématiques sont complexes. Néanmoins en tirant parti de la puissance des processeurs graphiques par l intermédiaire de shaders et en jouant sur des effets visuels il est possible de réaliser un rendu réaliste se soumettant aux exigences du temps réel à savoir obtenir au moins 25 images par secondes. Nous allons aborder dans un premiers temps les méthodes utilisées pour le rendu des nuages puis nous nous intéresserons au rendu de la mer. 2 L existant L idée de modéliser en 3D temps réel des scènes extérieurs n est pas nouvelle. De nombreux chercheurs se sont déjà penchés sur cette problématique [6] et ont aboutit à des résultats plus ou moins concluants. Concernant les nuages on trouve essentiellement deux méthodes : le billboarding que nous avons décidés d implémenter et la simulation de fluide basée sur des voxels bien plus difficile et lourde en terme de calculs mais qui donne des résultats largement plus convaincants tant au niveau de l apparence globale que de l expérience au sein des nuages.[2]concernant le rendu de la mer les deux tendances sont soit à la déforation de maillage soit à la simulation de fluides. Comme pour les nuages la simulation de fluide donne d excellents résultats mais il est aussi possible comme nous le verrons d obtenir un rendu agréable par une déformation de maillage. 4

3 Les nuages 3.1 Mode lisation Une rapide recherche sur le rendu de nuages nous a oriente s vers un article de Niniane Wang[7] alors de veloppeuse chez Microsoft sur le projet Flight Simulator 2004. Dans cet article il est fait e tat d une technique de rendu de nuages utilisant des billboards. De plus l atlas rassemblant les 16 textures utilse es e tant fournie nous nous sommes de cide s a utiliser cette me thode de rendu. Fig. 1 Texture des nuages Afin de repre senter un nuage nous commencons lors de sa cre ation par tirer ale atoirement son centre ainsi que ses dimensions (largeur, hauteur,profondeur). Ensuite chaque nuage est remplit par un nombre de partciules dont les centres et les dimensions sont aussi tire s ale atoirement gra ce au bruit de Perlin[5]. Les centres sont au passage ponde re s par une fonction implicite repre sentant une sphe re et prenant en compte plusieurs graines ; les centres de chaque particules sont e videmment contenus dans le volume du nuage. Le nombre de particules contenu dans chaque nuage est en fonction de la re solution de celui-ci c est a dire le pas de parcours de son volume. Chaque particule se voit attribuer une texture en fonction de sa position dans le nuage ; les particules se trouvant vers le bas auront une texture moins dense que celles du haut. Pour re sumer un nuage est constitue de : Un centre Une largeur ; Une hauteur ; Une profondeur ; Des particule place es gra ce au buit de Perlin et une fonction implicite ; 5

3.2 Rendu Le rendu des nuages s effectue par la méthode de billboarding.chaque particule constituant un nuage est en fait un quadrilatère. Ce quadrilatère est affiché de façon à être toujours orienté face à la caméra. Pour cela on récupère la matrice de vue actuelle dont on extrait les vecteurs up et right pour orienter chaque particule lors de son affichage. Dans un premier temps le billboarding était géré par le processeur ce qui ne posait pas de problème pour un petit nombre de particules mais lorsqu il était question d afficher plusieurs milliers de nuages le temps de calcul devenait trop important et la contrainte de temps réel n étaitplus respectée. Pour remédier à ce problème nous avons géré le billboarding grâce à un shader. Utiliser le processeur graphique très rapide en terme de calcul brut a permis de décharger le CPU de tout ces calculs. Gradient Une fois les nuages affichés leurs couleurs étaient en fait celle de la texture à savoir un blanc uniforme. Pour simuler l effet d atténuation de la lumière qui traverse le nuage nous avons implémentés un gradient de couleur fonctionnant entre trois valeurs arbitrairement choisies : blanc pour le haut, foncé pour le bas et gris au milieu. Fig. 2 Pas de gradient 6

Fig. 3 Gradient Re sultats Ci dessous nous allons voir l aspect des nuages selon leurs parame tres : Fig. 4 1 seed, blend 0.2 7

Fig. 5 2 seed, blend 1.0 Fig. 6 4 seed, blend 1.0 4 Mode lisation de la mer La mode lisation de la mer est ge re e par un shader et s est faite en plusieurs e tapes : Gerstner Waves [4] Les Gerstner waves sont une technique consistant a utiliser une somme de fonctions sinusoı dales que l on alte re par la suite afin de rapprocher les sommets proches du haut de la vague afin d obtenir un effet de cre te. Chaque vague a ses propres direction, amplitude, vitesse et parame tre de raideur. 8

Fig. 7 Illustration des Gerstner waves Réflexion Ce traitement est fait en refléant la texture de la cubemap sur la mer. Couleur [3] Enfin une couleur est affectée à chaque pixel en fonction du résultat du produit scalaire entre la normale au point et la direction de visée au delà caméra. Les pixels directement visés seront donc foncés tandis que les autres de plus en plus clairs. Fig. 8 Depth color, Shallow color Réflexion Ce traitement est fait en refléant la texture de la cubemap sur la mer. 9

Fig. 9 Depth color, Shallow color, reflection Bump Mapping [1] [3] En partant d une carte de normales trouve e sur internet on perturbe la normale du maillage apre s re flexion avec la normale stocke e dans la carte de normales. Cela permet de simuler un effet de relief. En multipliant les coordone es des textures de la normal map par le temps e coule on obtient un effet d animation que l on ame liore en moyennant trois normales qui se de placent chacune a trois vitesses diffe rentes. Fig. 10 Depth color, Shallow color, reflection, bump mapping Level of Detail Afin d e viter des traitemets superficiels nous avons de sactive s le calcul des Gerstner waves pour les sommets dont la distance a la came ra est au dela d une valeur seuil arbitraire. 10

5 Performances Afin d améliorer les performances de l affichage nous avons utilisé des VBO 1. Ce sont des zones mémoires réservées directement dans la RAM 2 de la carte graphique où sont stockées nos maillages. En utilisant l énorme bande passante d un processeur graphique et en s acquittant du temps de transfert en méoire vidéo lors de chaque affichage le frame rate s est vu grandement amélioré. De plus nous avons restreint l affichage à ce qui est contenu dans le volume de vision (view frustrum culling) ce qui a permis d encore augmenter notre frame rate. On constate les résultats suivants pour les nuages : Description FPS 3 max FPS moyen FPS min 66000 particules, no culling, no VBO, no shader 17 14.6 10 69000 particules, no culling, VBO, no shader 461 127 26 69000 particules, culling, VBO, shader 1500 150 27 On peut remarquer que l utilisation des VBO permet une très nette amélioration des performances (rapport de *9). Pour sa part le frustrum culling permet en général de conserver un framerate correct sauf si tous les nuages sont dans le champ de vision. Et pour la mer : Nombre de triangles FPS max FPS moyen FPS min 80000, 236 218 203 90000 205 187 175 500000 133 124 120 On observe que l augmentation du nombre de triangles du maillage induit une diminution du frame rate qui reste néanmoins raisonnable ; en effet c est surtout le fragment shader qui est le plus coûteux. Scène totale : Mer 90000 triangles + 70000 particules + heightmap de 32768 faces : FPS max 305, FPS moyen 55, FPS min 28 Avec 262768 triangles dans la scène on atteint un frame rate minimal de 28 ce qui est en accord avec la contrainte de temps réel. Il faut noter qu en divisant le nombre de particules par 6 le résultat est le même visuellement mais le frame rate moyen passe à 60. Les tests ont étés réalisés sur un ordinateur portable équipé d une carte graphique GeForce 8600M GT et un processeur core 2 duo T7500 cadencé à 2.2 GHZ. 6 Problèmes rencontrés Au cours du projet nous avons rencontrés plusieurs problèmes. Certans ont pu être résolus, d autres persistent encore. 1 Vertex Buffer Objects 2 Random Acces Memory 11

6.1 Nuages Les particules sont affichés comme des billboards. Lorsqu on tourne autour d un nuage celles-ci pivotent donc pour rester orientées face à la caméra et finissent par se chevaucher. Pour remédier au problème nous nous sommes résignés à désactiver le test de profondeur lors de l affichage des nuages. Les particules n étant pas triées au sein d un même nuage il en résulte un artefact d affichage. 6.2 Mer Concernant la mer nous avons essayés d implémenter la réfraction et la réflexion de Fresnel. Le problème était pour la réfraction que nous n avons pas de fond approprié et pour la réflexion la totalité de la texture était considérée comme de la luière et donc bien trop prononcée. 7 Améliorations possibles Outre le fait de solutionner les problèmes persistants que nous avons vu précédemment il serait très intéressant d apporter les améliorations qui suivent. 7.1 Nuages Pour l illumination des particules le gradient n est qu une solution basique. Une méthode qui donnerait un rendu beaucoup plus réaliste serait l utilisation de la méthode de scattering qui consiste à calculer pour chaque pixel du nuage l illumination reçue de la source en plus ce que les autres éléments déjà traversés lui renvoient. Ensuite il aurait été intéressant d implémenter des impostors afin de permettre une meilleure immersiondans la scène. L impostor fonctionne sur le même principe que le billboard sauf qu il s agit cette fois de ceinturer la position de la caméra par des quadrilatères texturés par les nuages qui sont trop loins de la caméra. L impostor n est mit,à jour qu à partir d un certain déplacement et de plus cela permet de faire un LOD. 4 De plus afin de garantir une meilleure expérience au sein des nuages il serait judicieux de bloquer l angle maximal d orientation du billboard ce qui éviterait lorsqu on est proche d eux qu un ptit mouvement de caméra n entraîne une grande rotation du sprite. Une autre amélioration possible serait de gérer le déplacement des nuages au grès du vent ainsi que l apparition et la disparition de nuages. Enfin pour éviter une redondance dans les textures utilisées appliquer une rotation aux particules serait un plus. 7.2 Mer La mer a aussi son lot d améliorations possibles comme par exemple appliquer une texture d écume sur le sommet des vagues. 4 Level Of Detail 12

Ensuite faire des réflexions dynamiques c est à dire rendre la scène dans une texture qui sera utilisée pour le calcul de la réflexion. 7.3 Skybox La skybox offre un meilleur visuel mais en prenant de l altitude on observe des défauts de jonction au niveau de l horizon qu il serait bien de corriger. 8 Divers Dans le but d avoir une idée de l échelle nous avons affichés une carte de hauteur carrée dont chaque côté a une longueur de 1024. Ensuite nous avons ajoutés une cubemap utilisée lors de l affichage pour améliorer l effet de réalisme en ajoutant un décor de fond qui entre aussi en compte dans la réflexion sur l eau. Enfin nous avons implémentés un brouillard afin de masquer les éléments trop loin de la caméra ainsi que l aliasage de la mer. En calculant le brouillard dans le fragment shader nous avons pu accéder à la valeur alpha des pixels ce qui permet de fondre les objets lointains dans la couleur de la skybox. 9 Conclusion Le projet a été mené à terme. Nous avons implémenté le rendu d une scène comprenant des nuages et une mer avec succès. Ce projet nous a permis de découvrir des extensions d OpenGL telles que les VBO et les cubemap mais à aussi été un excellent exercice d application à la programmation GPU. In fine la totalité de notre affichage est calculé au sein de la carte graphique. Outre l apprentissage de techniques avancées d opengl ce projet a été un excellent exemple de ce que peut représenter la contrainte de programmation en temps réel ; en effet avoir comme contrainte la limite basse de 25 frames par seconde nécessaires à un affichage fluide est compliqué. Enfin ce sujet nous a permis de faire de la programmation de terrain extérieur ce qui est une compétence plus qu appréciable car souvent utilisé dans le monde professionnel. 13

Références [1] Jérôme Guinot. Bump mapping avec le glsl. pages 1 4, 2006. [2] Mark Harris. Real time cloud rendering. [3] Jacob Munkberg. Advanced shading and rendering - water effects. 2008. [4] Nvidia. GPU Gems I. [5] Ken Perlin. noise machine. [6] vterrain. vterrain.org. [7] Niniane Wang. Realistic and fast cloud rendering in computer games. pages 1 1, 2003. Table des figures 1 Texture des nuages............................... 5 2 Pas de gradient................................. 6 3 Gradient..................................... 7 4 1 seed, blend 0.2................................ 7 5 2 seed, blend 1.0................................ 8 6 4 seed, blend 1.0................................ 8 7 Illustration des Gerstner waves........................ 9 8 Depth color, Shallow color........................... 9 9 Depth color, Shallow color, reflection..................... 10 10 Depth color, Shallow color, reflection, bump mapping............ 10 14