Gestion de scène pour les moteurs 3D

Dimension: px
Commencer à balayer dès la page:

Download "Gestion de scène pour les moteurs 3D"

Transcription

1 Gestion de scène pour les moteurs 3D Mémoire de recherche Nicolas Baillard Promotion : M2IRT 2009 Option : Ingiénerie des jeux vidéo (IJV) juillet 2009 ITIN 10, avenue de l Entreprise Parc Saint-Christophe Cergy-Pontoise Cedex

2

3 1. Résumé et remerciements 1.1 Résumé La gestion de scène est une technique à la base du rendu 3D moderne. Elle est apparue avec les premiers moteurs 3D, et depuis elle n a jamais cessé d évoluer et de se diversifier. Aujourd hui, les utilisations qui en sont faites sont aussi variées que les algorithmes qu elle utilise. Dans ce mémoire, après avoir décrit ce qu est la gestion de scène, son fonctionnement et son apport au domaine du rendu 3D, nous nous interrogerons sur son évolution future. Comment la gestion de scène peut-elle s adapter aux dernières générations de processeurs et de cartes graphiques? Comment peut-elle contribuer à l augmentation de la qualité des rendus 3D? Quelles nouvelles fonctionnalités peut-elle apporter aux applications 3D de demain? 1.2 Abstract Scene management is one of the base technique used by modern 3D engines. It appeared with the first 3D engines and, since then, it has constantly been improving. Today, it is used in many different ways and uses many different algorithms. In this paper, we are going to describe with details what scene management is, how it works and how 3D rendering benefits from it. Then, we will describe its possible future evolutions. How can scene management techniques be adapted to take advantage of the latest generations of processors and graphic cards? How will it increase the quality of 3D rendering? What new features will it bring to tomorrow s 3D softwares? 1.3 Remerciements Tout d abord, je tiens à remercier vivement M. Pierre Morcello d avoir accepté d être mon tuteur et de m avoir guidé et soutenu dans la réalisation de ce projet. Son expérience et sa connaissance intime du domaine m ont été très précieuses. Je remercie aussi tout particulièrement M. Florent Michel, qui encadre notre formation avec dynamisme et clairvoyance ; il a su constamment renouveler son contenu et la placer systématiquement en phase avec l évolution des technologies. Enfin, je tiens à remercier chaleureusement mon ami Arnaud Boidard pour son enthousiasme communicatif. Gestion de scène pour les moteurs 3D juillet /83

4 2. Table des matières 3. Définition du sujet La recherche sur rendu 3D Définition d un moteur 3D Définition de la gestion de scène Questions fondamentales du mémoire 5 4. Analyse de l existant Environnement Le développement des moteurs 3D Le développement des processeurs multicœurs Audit/diagnostic de l existant Le rendu 3D Le rendu temps réel Les GPU Per formance et frame rate Le pipeline graphique Structure des moteurs 3D Ce qui pose des problèmes de per formances Les techniques d optimisation utilisées aujourd hui Culling basé sur le graphe de scène Les arbres BSP Les portails Octree et quadtree Adaptativ binary tree Mélange de plusieurs systèmes de culling L occlusion dynamique Anti-portails Occlusion map Test d occlusion utilisant le GPU Niveaux de détail Imposteurs Atlas de textures Terrain Voxel Paging et chargement en tâche de fond Optimisation de l utilisation de système de rendu Cohérence temporelle Utilisations actuelles des gestionnaires de scène Critique de l existant Faiblesses des algorithmes existants Faiblesses des implémentations existantes Méthodes/démarches utilisées Description des améliorations Améliorations souhaitables Solutions possibles Choix des solutions et argumentation/justification du choix 67 2/83 Gestion de scène pour les moteurs 3D juillet 2009

5 7. Description détaillée de la solution choisie L utilisation du multithreading pour gagner en per formance Facteurs limitants l efficacité du multithreading Synthèse des résultats Enseignements tirés, apport du travail Conclusions générales, perspectives d avenir Bibliographie Webographie Terminologie Abréviations Glossaire 82 Gestion de scène pour les moteurs 3D juillet /83

6 3. Définition du sujet 3.1 La recherche sur rendu 3D La recherche sur rendu 3D en temps réel a connu, au cours de ces dernières années, un essor phénoménal. Le grand intérêt porté à ce sujet est principalement dû à l industrie du jeu vidéo, secteur très porteur et lucratif. Les progrès réalisés dans le domaine rendu 3D temps réel, qui offre des images toujours plus époustouflantes, est principalement attribué à l évolution du matériel informatique. S il est vrai que la puissance des processeurs et des cartes graphiques compte pour beaucoup, il ne faut pas pour autant occulter les évolutions du logiciel. Les programmes ont suivi les progrès du matériel de façon à mieux en tirer profit et à simplifier son utilisation. La structure des applications réalisant du rendu 3D temps réel et les algorithmes qu elles utilisent représentent désormais un domaine de recherche à part entière. Ce mémoire traite de la gestion de scène. Il s agit d une technique logicielle utilisée par les applications 3D actuelles pour optimiser le rendu. Je présenterai son utilisation, la façon dont elle s est développée et proposerai des améliorations destinées à mieux tirer profit du matériel informatique récent, en particulier les processeurs multicœurs. 3.2 Définition d un moteur 3D Un moteur 3D (3D engine en anglais) est une librairie destinée à faciliter le développement d applications 3D temps réel. Leurs domaines d utilisation sont : - les jeux vidéo, - les interfaces homme-machine, - les programmes de simulation, - la réalité augmentée, - les effets spéciaux, - l imagerie médicale, - certaines applications scientifiques. Tout programme réalisant des images en 3D repose sur un système de rendu. Il s agit d un système capable de transformer un ensemble de données dans un espace 3D en une image 2D. Les plus utilisés aujourd hui sont les implémentations d OpenGL ou de DirectX. Un système de rendu est un programme de bas niveau, compliqué à appréhender et à utiliser. Travailler avec un système de rendu implique d utiliser des données 3D sous leur forme la plus primitive : des points, des polygones, des textures et des transformations géométriques sous forme de matrices. De plus, pour l utiliser il faut prendre en compte de nombreuses contraintes liées à son implémentation et à ses limitations. Le rôle du moteur 3D est de totalement masquer le système de rendu et d offrir aux 4/83 Gestion de scène pour les moteurs 3D juillet 2009

7 développeurs une interface de haut niveau bien plus simple à utiliser. Un développeur utilisant un moteur 3D peut concevoir son application à la façon d un metteur en scène, c est-à-dire en plaçant des éléments (personnages, objets ) dans un espace à trois dimensions appelé scène et en définissant un ou plusieurs points de vue en plaçant des caméras. En plus de cette simplicité d utilisation, le moteur 3D optimise l utilisation du système de rendu, permettant ainsi de gérer des scènes toujours plus complexes sans alourdir la tâche de ce dernier. En plus du rendu, la plupart des moteurs 3D prennent en charge d autres opérations comme : - le chargement des ressources (modèles, textures ) à partir de fichiers ou d archives compressées, - la gestion de modèles animés, - la gestion de différents effets spéciaux comme les particules. Par contre, le terme moteur 3D n englobe pas d autres composantes non liées au rendu 3D mais que l on retrouve fréquemment dans les applications 3D temps réel, comme la simulation physique, la détection des collisions, la gestion du son spacialisé Une librairie incluant ces éléments en plus d un moteur 3D est appelée moteur de jeu (game engine). 3.3 Définition de la gestion de scène Un gestionnaire de scène est l un des éléments principaux qui composent un moteur 3D. Il a la charge du placement des éléments sur la scène, qu il s agisse de modèles, d éclairages ou de caméras. Au fur et à mesure que les développeurs ont voulu créer des scènes plus complexes, plus grandes et avec plus d éléments, le gestionnaire de scène est devenu de plus en plus un facteur d optimisation. Les gestionnaires de scène utilisés dans les moteurs 3D actuels sont capables de réaliser des opérations comme : - le frustum culling, c est-à-dire l élimination des éléments de la scène qui sont hors du champ de vision de la caméra ; - l occlusion culling, c est-à-dire l élimination des éléments de la scène qui sont masqués par d autres ; - la gestion de la mémoire pour ne charger que les modèles et les textures utilisés par la partie visible de la scène ; - le level of detail, c est-à-dire le rendu en mode dégradé des éléments de la scène les plus éloignés de la caméra. Toutes ces techniques d optimisation font encore l objet de recherches aujourd hui. 3.4 Questions fondamentales du mémoire Le principal objectif d un gestionnaire de scène est d optimiser la vitesse de rendu d un moteur 3D. Or, pour optimiser un système, il convient en premier lieu d identifier les Gestion de scène pour les moteurs 3D juillet /83

8 facteurs qui dégradent le plus ses performances et de s y attaquer en priorité. Avec l évolution technologique du matériel, on constate que les facteurs qui limitent les performances des applications actuelles ne sont pas les mêmes que précédemment. Quels sont, aujourd hui, les facteurs qui limitent les performances des applications 3D temps réel? Il y a encore quelques années, le facteur le plus limitant était le nombre de polygones dessinés. Envoyer au système de rendu une quantité trop importante de polygones à dessiner dégradait fortement la fluidité de l application. Pour cette raison, les gestionnaires de scènes ont été principalement développés pour optimiser le nombre de polygones envoyés au système de rendu en supprimant les parties non visibles de la scène parce que hors champ de la caméra ou masquées par d autres parties. Aujourd hui, grâce à l évolution du matériel, le nombre de polygones n est plus le facteur le plus problématique (même s il reste important). Les performances sont désormais principalement limitées par l utilisation toujours plus intensive des shaders et l occupation mémoire des textures toujours plus grandes. Les dernières recherches en matière de rendu 3D portent sur l optimisation de ces deux facteurs. Comment les gestionnaires de scène peuvent-ils contribuer dans cette situation? Les développeurs d applications 3D cherchent à rendre des scènes toujours plus grandes et plus complexes. On peut voir, par exemple dans certains jeux vidéo de dernière génération, des scènes représentant une ville entière. Cette complexification des scènes augmente considérablement la taille des graphes de scène. Cela a un impact non négligeable sur les performances de l application car l augmentation de la taille du graphe de scène implique d avantage de calculs de la part du gestionnaire de scène lui-même. Dans de telles circonstances, la gestion de scène, dont le but premier est d optimiser la vitesse du rendu, risque à contrario de devenir un des facteurs limitant les performances de l application. Du côté du matériel, le tournant technologique actuel est la démocratisation rapide des processeurs multicœurs. On trouve couramment, dans les ordinateurs récents, des processeurs dotés de quatre cœurs, et ce nombre devrait grandir exponentiellement dans les prochaines années. Cette technologie offre de nouveaux espoirs de performances aux développeurs de moteurs 3D. Un processeur multicœurs permet à une application souhaitant réaliser des calculs intensifs de répartir ces calculs sur tout ou partie des cœurs. Le temps de calcul global d une opération complexe peut s en trouver considérablement réduit, on parle alors de parallèlisme. Mais cela implique que le programme ait été spécialement conçu pour tirer parti des possibilités offertes par ces processeurs. Si le parallèlisme ne peut pas être utilisé pour optimiser n importe quel algorithme, peut-il être utilisé pour optimiser l utilisation des graphes de scène? Comment les gestionnaires de scène peuvent-ils tirer parti de cette technologie pour augmenter leurs performances? 6/83 Gestion de scène pour les moteurs 3D juillet 2009

9 4. Analyse de l existant 4.1 Environnement Le développement des moteurs 3D Les développeurs d applications 3D temps réel, et tout particulièrement l industrie du jeu vidéo, sont toujours à la recherche de solutions techniques pour produire des graphismes plus beaux, des effets plus saisissants et des scènes plus vastes et plus riches. L enjeu est conséquent, sur l année 2008 les jeux vidéos dans le monde représenteraient un marché de millions d euros pour les jeux consoles et 3 493,5 millions d euros pour les jeux PC (source AFJV etude.htm). Aujourd hui, les studios de développement de jeux vidéos ne produisent que très rarement leurs moteurs 3D eux-mêmes. Étant donné l ampleur de la tâche, ils préfèrent acheter des licences d utilisation pour des moteurs développés par les entreprises spécialisées (CryEngine, Unreal Engine, Source Engine ) ou utiliser des produits opensource (Ogre, Irrlicht ). Le plus gros de la recherche sur les techniques de gestion de scène est réalisé par les développeurs de moteurs 3D mais aussi dans le domaine universitaire où de nombreuses thèses sont disponibles sur le sujet Le développement des processeurs multicœurs Concernant les processeurs multicœurs, Intel est le fondeur qui a le plus investi dans cette technologie. Il est donc dans son intérêt d encourager le plus possible son utilisation. Malheureusement pour lui, même si cette technologie est très prometteuse, elle reste difficile à utiliser et les programmeurs qui sont formés à son utilisation sont encore trop rares. Intel cherche donc à séduire les programmeurs en leur offrant des outils de développement dédiés et opensource (on peut notamment citer la librairie Threading Building Blocks) ainsi que de la documentation. Des recherches sur l utilisation des processeurs multicœurs dans les jeux vidéos, et plus précisément dans les moteurs 3D et les moteurs physiques, ont été publiées. 4.2 Audit/diagnostic de l existant Le rendu 3D La dénomination images 3D est le nouveau nom donné à ce qu on appelait dessin ou peinture en perspective à la Renaissance. Il s agit d une technique graphique permettant de donner une impression de relief et de profondeur à un observateur placé devant une image plate. La génération d images de synthèse en 3D par ordinateur repose sur les mêmes principes de projection sur un plan que ceux utilisés dans le domaine artistique. En informatique 3D, une image est obtenue à partir d un ensemble de données numériques représentant des formes dans un espace à 3 dimensions. Un système de rendu 3D est capable de produire une image 2D à partir de cet ensemble de données et d un point de vue dans l espace. Gestion de scène pour les moteurs 3D juillet /83

10 4.2.2 Le rendu temps réel Il est possible d utiliser un système de rendu 3D pour créer des animations. Pour donner l illusion du mouvement, on crée une série d images à partir des mêmes données numériques de départ mais en les modifiant légèrement entre chaque image. Ces images peuvent ensuite être projetées sur un écran tel un film de cinéma. Le domaine de l animation 3D se scinde en deux grands ensembles : la 3D précalculée et la 3D temps réel. La 3D précalculée est utilisée dans des applications qui ne requièrent pas, ou peu, d interactivité avec l utilisateur. Par exemple un film de cinéma. C est une technique en deux temps. D abord les images d une animation 3D sont calculées et stockées. Une fois qu elles sont toutes générées, l animation peut être affichée. Avec une telle technique, le temps de calcul du rendu importe peu, seul compte le résultat. S il est nécessaire d obtenir des images de très bonne qualité, on n hésitera pas à faire travailler le système de rendu pendant plusieurs heures (voire plusieurs jours) pour obtenir une animation de seulement quelques minutes. Au contraire, la 3D temps réel est utilisée dans les applications à forte interactivité, typiquement les jeux vidéos. Dans ce type d application, les images générées par le système dépendent entièrement des actions de l utilisateur. Il est donc difficile de les calculer à l avance. En 3D temps réel, les images sont calculées au fur et à mesure qu elles sont affichées. Le temps de calcul d une image devient le facteur déterminant, s il n est pas possible d afficher suffisamment d images suffisamment vite l utilisateur perdra l illusion du mouvement. On n hésite donc pas à diminuer la qualité des images générées pour accélérer leur temps de calcul. Les différences de contrainte entre la 3D précalculée et la 3D temps réel sont tellement importantes que chacune de ces disciplines est devenue un domaine de recherche à part entière, utilisant des techniques et des algorithmes totalement différents. Dans la suite de ce mémoire, nous ne traiterons que de la 3D temps réel, qui est le domaine qui connaît aujourd hui le plus grand essor, notamment à cause du secteur des jeux vidéos Les GPU Un GPU (Graphic Processing Unit) est un micro-processeur dédié au calcul d images 3D en temps réel. Ils ont été conçus pour soulager les CPU (Central Processing Unit), c est-à-dire les processeurs principaux, d une partie des opérations nécessaires au rendu d images 3D en temps réel. Dans les années 90, le succès des premiers jeux vidéos en 3D a poussé au développement d applications capables d afficher en temps réel des images de meilleure qualité, mais les processeurs équipant les ordinateurs de l époque se sont montrés incapables de supporter une telle quantité de calculs. Certains processeurs dotés de structures et de jeux d instructions spécifiques pour le rendu 3D sont apparus (notamment la technologie MMX d Intel). Mais cette solution a été rapidement supplantée par la technique qui consiste à déléguer les calculs graphiques à un GPU séparé du CPU. Cependant, la barrière fonctionnelle entre CPU et GPU est aujourd hui de plus en plus floue. Si les GPU d autrefois étaient entièrement dédiés au calcul graphique, ceux d aujourd hui peuvent être utilisés pour toutes sortes d applications requièrant du calcul intensif (simulation physique, analyse anti-virus ). D un autre côté, le développement 8/83 Gestion de scène pour les moteurs 3D juillet 2009

11 des processeur multicœurs pourrait, dans les années à venir, permettre de produire des processeurs capables d effectuer du rendu 3D temps réel sans l aide d un GPU Per formance et frame rate Le rendu temps réel se fait par frame. Une frame est une image affichée à l écran à un instant donné. La fluidité de l application dépend du nombre de frames par seconde que le système peut afficher. On parle de frame par seconde, ou de framerate en anglais. Le framerate est le point crucial de toute application 3D temps réel. S il est trop faible, l utilisateur sera frustré. Dans certains cas, un mauvais framerate peut entraîner chez l utilisateur une cinétose, c est-à-dire une sensation de mal de mer. Maintenir un framerate suffisant tout en générant des images de bonne qualité, tel est le défi de la programmation d applications 3D temps réel Le pipeline graphique Le pipeline graphique est le processus par lequel des données géométriques vectorielles tridimentionelles (points et polygones) sont transformées en pixels qui peuvent ensuite être affichés sur un écran. Il est divisé en trois étapes appelées : applicative, géométrique et discrétisation. Une frame doit passer par ces trois étapes avant d être affichée. La phase applicative, comme son nom le laisse supposer, est purement logicielle, contrairement aux deux autres qui sont généralement implémentées matériellement sur le GPU. C est sur cette phase que le développeur d applications 3D temps réel a le plus de contrôle. Selon l application, elle peut comporter des opérations sans lien direct avec le rendu 3D, tel que de la simulation physique ou de l IA par exemple. Son rôle est d envoyer dans le pipeline graphique les données vectorielles tridimensionelles qui doivent être affichées. Le rôle de la phase géométrique est de transformer ces données vectorielles 3D en données vectorielles 2D, en réalisant des transformations mathématiques de projection. Enfin, la phase de discrétisation se charge de transformer ces données vectorielles 2D en données discrètes, c est-à-dire des pixels. Le principal problème du pipeline graphique est qu il s agit d un processus séquentiel, les données traitées doivent transiter par les trois phases l une après l autre. Une phase doit donc attendre que la phase précédente ait terminé son travail pour s exécuter. La vitesse d exécution de tout le pipeline graphique est donc pénalisée par la phase qui a le temps d exécution le plus long. Pour accélérer le rendu d une frame, le développeur d applications 3D temps réel doit en premier lieu déterminer quelle phase est la plus pénalisante et l optimiser pour réduire son temps d exécution. Lorsqu il n est plus possible de réduire le temps d exécution de la phase la plus pénalisante, la solution pour accélérer le rendu consiste à implémenter des optimisations dans les phases situées en amont de celle-ci de façon à ce qu elles lui envoient moins de données à traiter. Pour cette raison, la phase applicative influence beaucoup les performances globales de l application. En effet, c est elle qui donne des données à traiter aux deux autres phases. Si elle envoie moins de données à traiter dans le pipeline graphique, le temps d exécution des deux autres phases s en trouvera considérablement réduit. C est ici que les techniques de gestion de scène entrent en jeu. Gestion de scène pour les moteurs 3D juillet /83

12 4.2.6 Structure des moteurs 3D Les phases de géométrie et de discrétisation sont implémentées dans un programme appelé système de rendu ou renderer. Les implémentations d OpenGL ou de DirectX sont des systèmes de rendu parmi les plus utilisés. Un développeur d applications 3D temps réel qui utilise un système de rendu n a besoin de réaliser que la phase applicative, c est-à-dire celle qui envoie des données vectorielles tridimensionelles dans le pipeline graphique. Malgré cela, l utilisation d un système de rendu reste parliculièrement délicate et fastidieuse. D une part les données 3D sont représentées sous une forme particulièrement primitive (polygones, points, couleurs, textures ), d autre part certains effets tels que les ombres ou la transparence sont très complexes à réaliser. Pour cette raison, les développeurs d applications 3D temps réel préfèrent placer une couche logicielle supplémentaire entre le système de rendu et leur application : un moteur 3D. Image 1 Structure d une application 3D temps réel Les moteurs 3D masquent la complexité du système de rendu aux yeux du développeur. Celui-ci n a plus à manipuler les données 3D sous forme de points et de polygones, mais peut utiliser des objets de plus haut niveau. Il peut construire son application à la façon d un metteur en scène, en plaçant des éléments (des modèles, des animations, des éclairages, des effets spéciaux ) sur une scène virtuelle. En plus de cela, les moteurs 3D offrent, en général, les services suivants : - import de modèles créés dans des logiciels de modélisation 3D (3DS Max, Maya ), - gestion des modèles animés par squelettes ou morphing, - gestion de différents effets spéciaux (éclairages, ombres, transparence ), - choix du système de rendu à utiliser (entre OpenGL ou DirectX selon la plateforme par exemple). Les moteurs 3D actuels offrent tous une API fortement basée sur la programmation orientée objet. On y trouve toujours les mêmes types d objets, même si leur dénomination et leur utilisation varie d un moteur à l autre. Scène Tout d abord la scène. C est un espace à 3 dimensions représenté par un repère orthonormé d axes X, Y et Z. C est dans cet espace que l utilisateur du moteur 3D peut placer différents types d éléments (décors, personnages, effets spéciaux ) qui seront dessinés à l écran. Dans tous les moteurs 3D, la scène est gérée par un objet appelé gestionnaire de scène. Cet objet a la charge de maintenir une liste de tous les éléments présents sur la 10/83 Gestion de scène pour les moteurs 3D juillet 2009

13 scène afin de les envoyer au système de rendu lorsqu une frame doit être dessinée. En pratique, dans les moteurs 3D actuels, le gestionnaire de scène fait bien plus que cela. De nombreuses optimisations peuvent y être implémentées, nous les décrirons dans la suite de ce mémoire. Nœud Ensuite les nœuds (node). Ce sont des objets qui ont une position et une orientation sur la scène. L utilisateur peut les placer, les orienter et les faire bouger avec toute une panoplie de fonctions mathématiques offertes par le moteur 3D. Graphe de scène Les nœuds sont rangés dans une structure hiérarchique qui prend la forme d un arbre. Un nœud peut avoir plusieurs enfants mais seulement un parent. Ainsi, une transformation géométrique (translation ou rotation) appliquée sur un nœud se répercute sur ses descendants, ce qui permet de propager l opération à un groupe de nœuds. Cette structure hiérarchique est appelée graphe de scène. Une utilisation assez évidente du graphe de scène est la modélisation d un système solaire. Le nœud racine correspondrait au soleil. Les nœuds de chaque planète seraient des enfant du nœud soleil, et les nœuds des lunes seraient des enfants des nœuds de leur planètes respectives. Ainsi une rotation appliquée au soleil entraîne une rotation de toutes les planètes et de leurs lunes. La gestion de graphe de scène est confiée au gestionnaire de scène. Image 2 Graphe de scène représentant une partie du système solaire Gestion de scène pour les moteurs 3D juillet /83

14 Maillages Un maillage (mesh) est un objet qui peut être dessiné en 3D. Concrètement c est un ensemble de points, de polygones et de textures. Un maillage ne peut pas être placé directement sur la scène, il n a pas de position et d orientation, il faut utiliser des nœuds pour cela. Par exemple, pour réaliser une scène comportant trois personnages identiques, il faut un maillage qui représente le personnage et trois nœuds auxquels on va associer notre maillage. Image 3 La scène (à droite) comporte trois personnages identiques. Au niveau du moteur il n existe qu un seul objet maillage et trois objets nœud, un pour chaque personnage. Maillages animés Tout comme les maillages, les maillages animés sont composés de points et de polygones, mais possèdent en plus des informations permettant de changer dynamiquement la position des points. Typiquement, les maillages animés sont utilisés pour les personnages, pour faire bouger leurs membres ou modifier l expression de leur visage. Il existe deux techniques permettant d animer un modèle : les squelettes et le morphing. Les squelettes sont surtout utilisés pour faire bouger les membres des personnages (souvent la mâchoire aussi pour les faire parler). La technique consiste à mettre des os et à affecter un coefficient d influence aux sommets (vertex) du modèle par rapport aux os. Quand les os bougent, les sommets suivent. Cette opération se fait dans le logiciel de modélisation 3D et cela s appelle le skining. Il est généralement possible de placer des nœuds sur les os d un maillage animé de façon à ce que le nœud suive le déplacement de l os. Cette technique est utilisée pour fixer des éléments sur les membres d un personnage en mouvement, par exemple une arme tenue dans la main ou un casque porté sur la tête. Dans le cas du morphing les sommets transitent chacun depuis leur position initiale vers leur position finale selon une interpolation linéaire. Particules Les émetteurs de particules sont la base de la plupart des effets spéciaux visibles dans les applications 3D temps réel. Il s agit de systèmes capables de créer un grand nombre de petits objets, appelés particules, dans la scène. Selon le cas, ces objets peuvent être des modèles 3D, 2D ou simplement des points. En réglant de nombreux paramètres, 12/83 Gestion de scène pour les moteurs 3D juillet 2009

15 comme le nombre de particules émises, la fréquence d émission, la durée de vie des particules et leur apparence, il est possible de créer toute sorte d effets visuels (fumée, flamme, éclair, sabre laser ). Lumière Différents types de sources de lumière peuvent également être placées sur la scène. Sans source de lumière, rien n est visible. Dans la réalité, nous percevons les objets qui nous entourent grâce à la lumière qui se refléchit dessus et atteint les cellules de la rétine. Cette réflexion est différente selon la source de lumière et la nature de l objet sur lequel elle se réfléchit. De plus, la lumière reflétée sur les objets de notre environnement va indirectement éclairer d autres objets. Pour obtenir des images en 3D un tant soit peu réalistes, le système de rendu doit reproduire ces phénomènes. Malheureusement, calculer l éclairage d une scène en utilisant les lois de l optique demande bien trop de calculs pour pouvoir être utilisé en 3D temps réel (la 3D précalculée, elle, ne s en prive pas!). On utilise donc des algorithmes d éclairages approximatifs. La recherche sur l éclairage en 3D temps réel a beaucoup progressé ces dernières années. Détailler le fonctionnement des algorithmes d éclairage est hors du contexte de ce mémoire. Image 4 Cette image à été créée en rendu précalculé grâce au moteur de rendu Maxwell qui simule la physique de la lumière d une façon très précise. Obtenir ce type d image en temps réel est aujourd hui impossible. Shaders Les shaders sont des programmes capables d affecter le fonctionnement du pipeline graphique. Ils peuvent être utilisés pour obtenir des effets de rendu particuliers sur tout ou partie d un maillage, voire d une scène entière. On distingue principalement les sommets shaders et les pixels shaders. Les vertex shaders interviennent au niveau de l étape géométrique. Ils peuvent modifier la façon dont certains sommets de la scène seront traités par le pipeline graphique. Gestion de scène pour les moteurs 3D juillet /83

16 Les pixels shaders interviennent au niveau de l étape de discrétisation. Ils peuvent modifier la couleur finale de certains pixels de l image. Les shaders sont généralement exécutés sur le GPU. Ils bénéficient ainsi de l architecture fortement parallèle de ce dernier, ce qui leur donne de bonnes performances. Les shaders sont écrits par l utilisateur du système de rendu dans des langages de programmation spécialisés. Les effets qu ils permettent de réaliser sont très variés. Ils peuvent par exemple être utilisés pour : - créer des textures avec des propriétés d éclairage particulières (peau, eau, lave ), - répéter des motifs sur une surface ou un volume (un carrelage sur un plan, un immeuble avec plusieurs étages sur un parallépipède ), - créer des effets météorologiques (brouillard, neige, pluie ). La liste ci-dessus n est pas exhaustive. Image 5 Dans la démonstration technique de Nvidia, Nalu daughter of the deep sea, les cheveux de la sirène sont crées et animés grâce à un vertex shader (détection de collision comprise). Leur couleur est calculée grâce à un pixel shader. 14/83 Gestion de scène pour les moteurs 3D juillet 2009

17 Caméra Le but de la création d une scène 3D est qu elle puisse être dessinée sous différents points de vue. Pour définir ces points de vue, on place des caméras sur la scène. De nombreux paramètres peuvent être utilisés pour définir la focale de la caméra et son champ de vision. Ces paramètres détermineront la portion de la scène qui sera visible sur le rendu et la facon dont la perspective y sera restituée. Dans certains cas, plusieurs caméras peuvent être utilisées pour rendre différentes parties d une même image. Image 6 Le jeu Portal, de Valve, utilise plusieurs caméras situées sur la même scène pour rendre différentes parties de l image vue par le joueur. Surface de rendu Il s agit du buffer de pixels dans lequel le rendu sera écrit. La plupart du temps, ce sera tout ou partie de la surface d un écran. Mais il est aussi possible de faire un rendu dans un buffer qui ne sera pas affiché sur l écran, mais à la place utilisé comme texture dans un autre rendu. Cette technique de render to texture est utilisée pour réaliser certains effets d éclairages et d ombrages. File de rendu La file de rendu, file de rendu en anglais, est une file d attente dans laquelle le gestionnaire de scène place les éléments qui doivent être envoyés au système de rendu pour Gestion de scène pour les moteurs 3D juillet /83

18 dessiner la prochaine frame. Certains ajustements sont effectués dans la file de rendu avant d envoyer les éléments au système de rendu. Par exemple, la plupart des systèmes demandent à ce que les éléments transparents leurs soient envoyés après tous les autres de façon à pouvoir mixer leurs couleurs avec celles des éléments opaques déjà dessinés. La file de rendu se charge alors d envoyer les éléments dans le bon ordre. Certaines optimisations concernant l utilisation du système de rendu peuvent être implémentées au niveau de la file de rendu. Nous les décrirons par la suite. Gestion du temps Le but de la 3D temps réel étant de créer des images animées, une base de temps est nécessaire. C est en déplaçant les éléments présents sur la scène un peu entre chaque frame que l on crée l illusion du mouvement. Or tout joueur de jeux vidéos sur PC sait que le nombre de frames par seconde est tout sauf constant. Il peut varier du simple au double selon la puissance de l ordinateur sur lequel l application fonctionne. Il peut aussi varier pendant l exécution de l application selon la somme de calculs demandée au système. Pour assurer la cohérence des mouvements, le moteur 3D utilise l horloge de l ordinateur, via le système d exploitation. Séquence de rendu d une frame Un moteur 3D fonctionne comme une boucle. Chaque frame rendue correspond à un tour de cette boucle. Les étapes nécessaires pour rendre une frame sont les suivantes : - D abord s exécute tout le code de l application qui ne dépend pas du moteur 3D. Acquisition des commandes que l utilisateur a entrées au clavier, à la souris et/ou au joystick. Exécution de l IA et de la simulation physique, si l application en utilise une. A partir des données calculées par l IA et/ou la physique, l application va placer des éléments sur la scène, ou déplacer ceux qui s y trouvent déjà. Par exemple, dans un jeu vidéo où le joueur contrôle un personnage au joystick, si l application détecte que le joueur a poussé le joystick vers l avant, elle va déplacer le personnage vers l avant sur la scène et déclencher une animation de son maillage pour donner l impression qu il marche. - Ensuite le moteur 3D entre en action. Le gestionnaire de scène liste les éléments qui doivent être dessinés et les place dans la file de rendu. - La file de rendu envoie les données géométriques de ces éléments au système de rendu. - Le système de rendu calcule l image et l affiche. Dans la plupart des applications actuelles, toutes ces opérations sont exécutées successivement. Cependant, sur les machines équipées de plusieurs processeurs, ou de processeurs multicœurs, il est possible d exécuter certaines opérations en parallèle. Par exemple, pendant que le moteur 3D et le système de rendu fonctionnent sur un processeur pour calculer la frame en cours, la physique et l IA peuvent être calculées sur les autres processeurs pour préparer la frame suivante. 16/83 Gestion de scène pour les moteurs 3D juillet 2009

19 4.2.7 Ce qui pose des problèmes de performances Malgré l évolution constante de la puissance des CPU et des GPU, les applications 3D temps réel sont toujours sujettes à des problèmes de performances. Les images produites par ces dernières sont encore loin de rivaliser en qualité avec les images produites en 3D précalculée. Afin de pouvoir proposer des techniques d optimisation, il convient d abord de lister les différents facteurs de limitation des performances des applications 3D temps réel. Le nombre de polygones Il est longtemps resté le principal facteur limitant. Pour augmenter la qualité et le réalisme des images 3D, il est nécessaire d y mettre plus de détails. Pour ce faire, il faut dessiner la scène avec plus de polygones, de façon à mieux rendre la forme des objets. Image 7 Deux modélisations d un même personnage de jeu vidéo. La première offre beaucoup de détails et utilise un nombre conséquent de polygones. La seconde est une version simplifiée qui en utilise beaucoup moins. On parle de modèle high poly et low poly. Dans les jeux vidéos, les premiers sont généralement utilisés pour les scènes cinématiques faites en rendu précalculé. Les autres sont utilisés pour le jeu lui-même qui fonctionne en rendu temps réel. Le temps de traitement d une frame augmente avec le nombre de polygones que le système de rendu doit traiter pour la dessiner. Pour cette raison, les premières techniques d optimisation développées dans les moteurs 3D ont consisté à réduire le nombre de polygones qui composent une image sans altérer sa qualité. Ces optimisations sont souvent implémentées au niveau du gestionnaire de scène. Nous les décrirons dans la suite de ce mémoire. Les changements d état Les systèmes de rendu utilisés en 3D temps réel, tels que OpenGL ou DirectX, fonctionnent comme des machines à états. Ils communiquent avec l application qui les utilisent via des commandes qui font changer leur état interne. Par exemple, certaines comman- Gestion de scène pour les moteurs 3D juillet /83

20 des indiquent au système de rendu que les sommets qui lui seront envoyés par la suite seront affectés par une transformation géométrique. D autres indiquent que les sommets devront être dessinés avec une couleur ou une texture particulière. Certaines de ces commandes, en particulier le changement de la texture courante, demandent un temps d exécution non négligeable. De plus, dans le cas le plus courant où le système de rendu est implémenté sur un GPU, l envoi d une commande nécessite une communication entre le CPU et le GPU, ce qui est aussi coûteux en temps. Le rendu d une scène complexe constituée de nombreux objets peut être sérieusement affecté par l overdose de changements d états. Pour réduire ce désagrément, il convient de bien organiser la façon dont les données géométriques sont envoyées au système de rendu. Par exemple, il est possible de trier tous les polygones de la scène selon la texture qu ils utilisent. On peut ainsi envoyer tous les polygones utilisant une même texture ensemble, ce qui réduit le nombre de changements de la texture courante nécessaire. Les optimisations de ce type sont implémentées au niveau de la file de rendu. La taille des textures Pour être utilisée par le système de rendu, une texture doit être chargée dans la mémoire du GPU. Elle doit y être stockée sous forme décompressée, c est-à-dire sous forme d un ensemble de pixels (pas de JEPG, de GIF ou de PNG en mémoire). Les cartes graphiques haut de gamme sont équipées, aujourd hui, de Mo de mémoire, et cette mémoire doit contenir, en plus des textures, les polygones nécessaires au rendu de la scène. Le moteur 3D doit gérer cette mémoire en y chargeant uniquement les textures nécessaires au rendu de la frame en cours. Le transfert d une texture, depuis la mémoire de l ordinateur vers la mémoire du GPU, est une opération coûteuse en temps. Utiliser des textures plus grandes permet de dessiner la scène avec plus de détails, ce qui augmente la qualité des images rendues. Mais le rendu d une scène qui utilise trop de textures trop grandes pour être toutes logées dans la mémoire du GPU peut facilement faire chuter le framerate. De plus, le rendu de certaines scènes nécessite des textures aussi grandes que la scène elle-même, par exemple une carte routière projetée sur un terrain. De telles textures sont bien trop grandes pour être stockées entièrement dans la mémoire du GPU. Le calcul des shaders Grâce à leur grande flexibilité, l utilisation des shaders s est largement démocratisée ces dernières années. De nombreux effets visuels utilisés dans les applications récentes sont possibles uniquement grâce aux shaders. Malheureusement, leur utilisation alourdit considérablement la tâche du système de rendu. Même si les GPU actuels disposent d une puissance de calcul monstrueuse, l utilisation de shaders trop complexes, sur un trop grand nombre de polygones ou de pixels, peut faire considérablement baisser le framerate. 18/83 Gestion de scène pour les moteurs 3D juillet 2009

Rapport de Stage. Habillage procédural et rendu en temps réel de vastes terrains texturés par GPU-quadtrees. (15 janvier - 15juillet 2006

Rapport de Stage. Habillage procédural et rendu en temps réel de vastes terrains texturés par GPU-quadtrees. (15 janvier - 15juillet 2006 Rapport de Stage Habillage procédural et rendu en temps réel de vastes terrains texturés par GPU-quadtrees (15 janvier - 15juillet 2006 15 avril - 15 juillet 2007) Effectué au sein du laboratoire MAP-ARIA

Plus en détail

Visualisation 3D sur un Smartphone

Visualisation 3D sur un Smartphone Visualisation 3D sur un Smartphone Réalisé par: Bouhajja Lamia Daikhi Rahma Encadré par : Madame Ben Azouz Zouhour SOMMAIRE : I. Introduction Générale générale II. Objectif du projet III. Rendu 3D IV.

Plus en détail

8TRD147: Animation et images par ordinateur

8TRD147: Animation et images par ordinateur 8TRD147: Animation et images par ordinateur Simulation de fourrure Y. Chiricota Département d informatique et de mathématique Université du Québec à Chicoutimi / Certaines des illustrations de ce document

Plus en détail

PROJET DE FIN D ÉTUDES Asservissement visuel d un robot parallèle à câbles pour la réalisation d une fresque verticale de grande taille

PROJET DE FIN D ÉTUDES Asservissement visuel d un robot parallèle à câbles pour la réalisation d une fresque verticale de grande taille Résumé de PFE PROJET DE FIN D ÉTUDES Asservissement visuel d un robot parallèle à câbles pour la réalisation d une fresque verticale de grande taille Introduction Dans le domaine de la robotique, la robotique

Plus en détail

LO12. Chap 1 1. 1. Introduction UTC A2006. 1.1 Présentation de l'uv. Bases de l infographie et Images de synthèse. Objectifs

LO12. Chap 1 1. 1. Introduction UTC A2006. 1.1 Présentation de l'uv. Bases de l infographie et Images de synthèse. Objectifs UTC A2006 1. Introduction 1.1 Présentation de l'uv Objectifs Bases de l infographie et Images de synthèse savoir se repérer dans l espace, comprendre les principaux algorithmes d infographie (leur puissance

Plus en détail

INFOGRAPHIE. Rapport du Projet de dessin 2D et 3D

INFOGRAPHIE. Rapport du Projet de dessin 2D et 3D Institut Galilée INFO 1 : Yohan ROUSSET Stéphane FOURNIER INFOGRAPHIE Rapport du Projet de dessin 2D et 3D Superviseur : R. MALGOUYRES Année 2008-2009 2 Table des matières I. Introduction... 4 II. Dessin

Plus en détail

Chap. III : Le système d exploitation

Chap. III : Le système d exploitation UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Le système d exploitation (ou O.S. de l anglais Operating System ) d un ordinateur est le programme qui permet d accéder

Plus en détail

. Conception des jeux 3D. Moteurs graphiques. Christian Nguyen

. Conception des jeux 3D. Moteurs graphiques. Christian Nguyen .. Moteurs graphiques Département d informatique Université de Toulon . Moteur de jeu (game engine) Ensemble de composants logiciels permettant le développement jeu sur PC, consoles et mobiles et comprenant

Plus en détail

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

Synthèse d'images I. Venceslas BIRI IGM Université de Marne La Synthèse d'images I Venceslas BIRI IGM Université de Marne La La synthèse d'images II. Rendu & Affichage 1. Introduction Venceslas BIRI IGM Université de Marne La Introduction Objectif Réaliser une image

Plus en détail

Introduction à la modélisation et à l animation 3D

Introduction à la modélisation et à l animation 3D Introduction à la modélisation et à l animation 3D Frank Singhoff Bureau C-203 Université de Brest, France LISyC/EA 3883 singhoff@univ-brest.fr UE multimédias et animation, Université de Brest Page 1/16

Plus en détail

Animation d un robot

Animation d un robot nimation d un robot IFT3355 : Infographie - TP #1 Jérémie Dumas Baptiste De La Robertie 3 février 2010 Université de Montréal Table des matières Introduction au problème 2 1 Transformations 2 1.1 Passage

Plus en détail

Aujourd hui. Synthèse d Images. De la réalité à l ordinateur. De la réalité à l ordinateur. Triangle Mesh: Possibilités: Cours plus tard

Aujourd hui. Synthèse d Images. De la réalité à l ordinateur. De la réalité à l ordinateur. Triangle Mesh: Possibilités: Cours plus tard Aujourd hui Comment créer un modèle sur l ordi? Synthèse d Images Elmar Eisemann Elmar.Eisemann@inrialpes.fr Basé sur les cours de E. Boyer, H. Briceno, N. Holzschuch Qu est-ce l éclairage? Comment simuler

Plus en détail

Architecture des ordinateurs. Optimisation : pipeline. Pipeline (I) Pipeline (II) Exemple simplifié : Instructions de type R

Architecture des ordinateurs. Optimisation : pipeline. Pipeline (I) Pipeline (II) Exemple simplifié : Instructions de type R Architecture des ordinateurs Licence Informatique - Université de Provence Jean-Marc Talbot Optimisation : pipeline jtalbot@cmi.univ-mrs.fr L3 Informatique - Université de Provence () Architecture des

Plus en détail

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

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants : GIF-3002 SMI et Architecture du microprocesseur Ce cours discute de l impact du design du microprocesseur sur le système entier. Il présente d abord l architecture du cœur ARM Cortex M3. Ensuite, le cours

Plus en détail

Figure 6.3: Possibilité d exprimer son talent

Figure 6.3: Possibilité d exprimer son talent SÉANCE 6 Création de schémas 6.1 Présentation du logiciel «Draw» est un logiciel de dessin vectoriel et de PAO (Publication Assistée par Ordinateur). Avec ce logiciel, il vous est possible de créer divers

Plus en détail

La solution complète pour la conception et la construction de route ANADELTA TESSERA. www.anadelta.com

La solution complète pour la conception et la construction de route ANADELTA TESSERA. www.anadelta.com La solution complète pour la conception et la construction de route Brève Description Brève Description ANADELTA TESSERA Tessera est une solution logicielle professionnelle destinée aux ingénieurs civils

Plus en détail

GÉRER LES ATTRIBUTS GRAPHIQUES DANS LES MURS

GÉRER LES ATTRIBUTS GRAPHIQUES DANS LES MURS GÉRER LES ATTRIBUTS GRAPHIQUES DANS LES MURS ASTUCE DU MOIS Introduction Vous avez sûrement été confronté(e) à la question suivante : comment dois-je m y prendre pour associer des attributs graphiques

Plus en détail

V. Visualisation d une scène

V. Visualisation d une scène V. Visualisation d une scène 1. Cadrage Il ne faut pas confondre la fenêtre d affichage (définie par le système de fenêtrage qui est indépendant d OpenGL) et le cadre (partie de fenêtre) dans lequel on

Plus en détail

Architecture des calculateurs

Architecture des calculateurs Chapitre 1 Architecture des calculateurs 1.1 Introduction Ce paragraphe n a pas la prétention de présenter un cours d informatique. D une manière générale, seuls les caractéristiques architecturales qui

Plus en détail

Clément MILVILLE / Edouard SIMON. Projet CodeWar. Enseignant tuteur: Michaël Hauspie 1/17

Clément MILVILLE / Edouard SIMON. Projet CodeWar. Enseignant tuteur: Michaël Hauspie 1/17 Projet CodeWar Enseignant tuteur: Michaël Hauspie 1/17 2/17 Remerciements: Nous tenons à remercier tout particulièrement notre tuteur M. Michaël HAUSPIE pour son aide, ses conseils, ses avis et sa disponibilité

Plus en détail

Frédéric Blanc. 200 Infographie d architecture

Frédéric Blanc. 200 Infographie d architecture 200 Infographie d architecture Frédéric Blanc Frédéric Blanc a occupé, sept années durant, le poste de Product Manager Graphic & Design au sein d Abvent, distributeur français de SketchUp et éditeur d

Plus en détail

Visibilité polygone à polygone :

Visibilité polygone à polygone : Introduction Visibilité polygone à polygone : calcul, représentation, applications Frédéric Mora Université de Poitiers - Laboratoire SIC 10 juillet 2006 1 La visibilité Introduction Contexte L espace

Plus en détail

Programmation parallèle et distribuée

Programmation parallèle et distribuée Programmation parallèle et distribuée (GIF-4104/7104) 5a - (hiver 2015) Marc Parizeau, Département de génie électrique et de génie informatique Plan Données massives («big data») Architecture Hadoop distribution

Plus en détail

IUT de Provence Site d Arles 2008-2009 Département d Informatique Licence pro SIL IN. IN Synthèse d images - Rendu TP 4

IUT de Provence Site d Arles 2008-2009 Département d Informatique Licence pro SIL IN. IN Synthèse d images - Rendu TP 4 IUT de Provence Site d Arles 2008-2009 Département d Informatique Licence pro SIL IN IN Synthèse d images - Rendu TP 4 Nous allons améliorer la vitesse d affichage d une scène 3D complexe en introduisant

Plus en détail

TICE et arts plastiques

TICE et arts plastiques TICE et arts plastiques -Quelques rappels pratiques -Logiciels gratuits utilisables en salle informatique avec une classe. -Conseils pour la première fois -Exemples de documents -Travaux d élèves Cette

Plus en détail

Algorithmes de tri. 1 Introduction

Algorithmes de tri. 1 Introduction Algorithmes de tri L objectif de ce document est de présenter plusieurs algorithmes classiques de tri. On commence par présenter chaque méthode de manière intuitive, puis on détaille un exemple d exécution

Plus en détail

Pipeline Graphique. Transforma)ons de modélisa)on. Illumina)on (Shading) Transforma)ons d affichage. Clipping. Transforma)on écran (Projec)on)

Pipeline Graphique. Transforma)ons de modélisa)on. Illumina)on (Shading) Transforma)ons d affichage. Clipping. Transforma)on écran (Projec)on) Pipeline Graphique Pipeline Graphique de Modèle de la scène Image 3D Transformations de modélisation de Application des transformations de composition de scène : Passage du système de coordonnées local

Plus en détail

Introduction aux systèmes d exploitation

Introduction aux systèmes d exploitation Introduction aux systèmes d exploitation Le système d exploitation est un ensemble de logiciels qui pilotent la partie matérielle d un ordinateur. Les principales ressources gérées par un système d exploitation

Plus en détail

PG208, Projet n 2 : Dessin vectoriel

PG208, Projet n 2 : Dessin vectoriel PG208, Projet n 2 : Dessin vectoriel Bertrand LE GAL, Serge BOUTER et Clément VUCHENER Filière électronique 2 eme année - Année universitaire 2011-2012 1 Introduction 1.1 Objectif du projet L objectif

Plus en détail

Comparaison entre une architecture matérielle dédiée et un GP-GPU pour l optimisation

Comparaison entre une architecture matérielle dédiée et un GP-GPU pour l optimisation Comparaison entre une architecture matérielle dédiée et un GP-GPU pour l optimisation Université de Bretagne-Sud Lab-STICC, Lorient, France ROADeF Troyes, France 13-15 Février 2013 1/22 Objectifs Après

Plus en détail

Les modèles technologiques de la localisation

Les modèles technologiques de la localisation Les modèles technologiques de la localisation Les modèles technologiques de la localisation Cécile Martin Université Rennes 2 Avant d entrer en détails dans les modèles technologiques de la localisation,

Plus en détail

Architecture logicielle des ordinateurs

Architecture logicielle des ordinateurs Architecture logicielle des ordinateurs Yannick Prié UFR Informatique Université Claude Bernard Lyon 1 des ordinateurs Objectifs du cours Notions générales sur le fonctionnement matériel (un peu) et logiciel

Plus en détail

Chapitre 1 Introduction

Chapitre 1 Introduction Chapitre 1 Introduction La réalité augmentée assistée par ordinateur est un domaine émergeant, qui progresse rapidement. Son principe est de mélanger le monde réel et le monde virtuel. De nombreuses applications

Plus en détail

Enveloppes convexes dans le plan

Enveloppes convexes dans le plan ÉCOLE POLYTECHNIQUE ÉCOLES NORMALES SUPÉRIEURES ÉCOLE SUPÉRIEURE DE PHYSIQUE ET DE CHIMIE INDUSTRIELLES CONCOURS D ADMISSION FILIÈRE MP HORS SPÉCIALITÉ INFO FILIÈRE PC COMPOSITION D INFORMATIQUE B (XECLR)

Plus en détail

CRÉATION D UN OBJET DE JEU VIDÉO

CRÉATION D UN OBJET DE JEU VIDÉO CRÉATION D UN OBJET DE JEU VIDÉO Stranger, Niavok 29 octobre 2015 Table des matières 1 Introduction 5 2 La 3D pour le jeu vidéo 7 3 Concept et modélisation 9 4 Le normal mapping, le détail à moindres

Plus en détail

Solutions de gestion de la sécurité Livre blanc

Solutions de gestion de la sécurité Livre blanc Solutions de gestion de la sécurité Livre blanc L intégration de la gestion des identités et des accès avec l authentification unique Objectif : Renforcer la politique de sécurité et améliorer la productivité

Plus en détail

14 Le langage Java : concepts et pratique

14 Le langage Java : concepts et pratique Avant-propos Le langage Java, né en janvier 1995 chez Sun, est un langage à objets qui permet d écrire de façon simple et claire des programmes portables sur la majorité des plateformes. Lié à l essor

Plus en détail

L INFORMATION GEOGRAPHIQUE

L INFORMATION GEOGRAPHIQUE Champs sur Marne ENSG/CERSIG Le 19-nove.-02 L INFORMATION GEOGRAPHIQUE Archivage Le Système d information géographique rassemble de l information afin de permettre son utilisation dans des applications

Plus en détail

Comparatif Vista / Ubuntu / Fedora

Comparatif Vista / Ubuntu / Fedora Comparatif Vista / Ubuntu / Fedora On entend souvent dire que Linux n est pas fait pour le jeu, alors à Jeuvinux on a voulu en avoir le coeur net! C est pourquoi nous vous proposons un comparatif qui permettra

Plus en détail

Guillaume SOLDERA (B guillaume.soldera@serli.fr) SERLI Informatique Bull OW2 Consortium. Comparatif Choco/Drools dans le cadre du projet JASMINe

Guillaume SOLDERA (B guillaume.soldera@serli.fr) SERLI Informatique Bull OW2 Consortium. Comparatif Choco/Drools dans le cadre du projet JASMINe Guillaume SOLDERA (B guillaume.soldera@serli.fr) SERLI Informatique Bull OW2 Consortium dans le cadre du projet JASMINe Avril 2008 Table des matières 1 Introduction 3 1.1 Rappel sur JASMINe.......................................

Plus en détail

Poker. A rendre pour le 25 avril

Poker. A rendre pour le 25 avril Poker A rendre pour le 25 avril 0 Avant propos 0.1 Notation Les parties sans * sont obligatoires (ne rendez pas un projet qui ne contient pas toutes les fonctions sans *). Celles avec (*) sont moins faciles

Plus en détail

COMMENT DÉFINIR L ORIENTÉ OBJET

COMMENT DÉFINIR L ORIENTÉ OBJET COMMENT DÉFINIR L ORIENTÉ OBJET De manière superficielle, le terme «orienté objet», signifie que l on organise le logiciel comme une collection d objets dissociés comprenant à la fois une structure de

Plus en détail

Configurations pour ordinateur PC & optimisations du système d exploitation Windows (Mise à jour : Novembre 2012)

Configurations pour ordinateur PC & optimisations du système d exploitation Windows (Mise à jour : Novembre 2012) Configurations pour ordinateur PC & optimisations du système d exploitation Windows (Mise à jour : Novembre 2012) Un processeur rapide et une bonne quantité de mémoire, bien qu important, ne peuvent garantir

Plus en détail

Machine de Turing. Informatique II Algorithmique 1

Machine de Turing. Informatique II Algorithmique 1 Machine de Turing Nous avons vu qu un programme peut être considéré comme la décomposition de la tâche à réaliser en une séquence d instructions élémentaires (manipulant des données élémentaires) compréhensibles

Plus en détail

Evolution d un scénario dans l expérience e-colab. EMF, Dakar avril 2009 Gilles Aldon, Eductice, INRP Dominique Raymond-Baroux, IREM Paris 7

Evolution d un scénario dans l expérience e-colab. EMF, Dakar avril 2009 Gilles Aldon, Eductice, INRP Dominique Raymond-Baroux, IREM Paris 7 Evolution d un scénario dans l expérience e-colab EMF, Dakar avril 2009 Gilles Aldon, Eductice, INRP Dominique Raymond-Baroux, IREM Paris 7 Cadre général Groupe e-colab au sein de l INRP Collaboration

Plus en détail

Bien choisir votre PC Si vous envisagez d acheter un ordinateur ou de renouveler votre outil informatique existant par du matériel plus récent et

Bien choisir votre PC Si vous envisagez d acheter un ordinateur ou de renouveler votre outil informatique existant par du matériel plus récent et 1 Bien choisir votre PC Si vous envisagez d acheter un ordinateur ou de renouveler votre outil informatique existant par du matériel plus récent et équipé du dernier système d exploitation de Microsoft,

Plus en détail

Préparer une photo pour l envoyer par e-mail

Préparer une photo pour l envoyer par e-mail Préparer une photo pour l envoyer par e-mail Dimitri Robert Association des pays d Aix des utilisateurs de Linux et des logiciels libres (Axul) 7 février 2008 1 Pourquoi Vous prenez des photos avec votre

Plus en détail

Cyril Blazy Emmanuel Roux

Cyril Blazy Emmanuel Roux Cyril Blazy Emmanuel Roux Avec la contribution de Olivier Salvatori Groupe Eyrolles, 2006 ISBN 2-212-11607-1 Créez les matières de l androïde A t e l i e r 7 >>> >>> Au cours de cet atelier, vous allez

Plus en détail

PROJET DE MODELISATION CASERNE SERGEANT BLANDAN

PROJET DE MODELISATION CASERNE SERGEANT BLANDAN Boris BRUGEVIN Sylvain GIORIA PROJET DE MODELISATION CASERNE SERGEANT BLANDAN Master 2 Programmation et Développement Université Lumière LYON 2 - GAMAGORA 2007-2008 II.. PRESENTATIION DU PROJET Ce projet

Plus en détail

Stage de fin de formation du Master, Spécialité Conception Visuelle Du 16 Avril au 28 Septembre

Stage de fin de formation du Master, Spécialité Conception Visuelle Du 16 Avril au 28 Septembre INTRODUCTION Stage de fin de formation du Master, Spécialité Conception Visuelle Du 16 Avril au 28 Septembre Chez Exkee, à Marseille Supervisé par Phetsarath Phommarinh, Directeur artistique Plan Présentation

Plus en détail

Création d un catalogue en ligne

Création d un catalogue en ligne 5 Création d un catalogue en ligne Au sommaire de ce chapitre Fonctionnement théorique Définition de jeux d enregistrements Insertion de contenu dynamique Aperçu des données Finalisation de la page de

Plus en détail

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

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. Sciences et Technologies de l Industrie et du Développement Durable Formation des enseignants parcours : ET24 Modèle de

Plus en détail

Gé nié Logiciél Livré Blanc

Gé nié Logiciél Livré Blanc Gé nié Logiciél Livré Blanc Version 0.2 26 Octobre 2011 Xavier Blanc Xavier.Blanc@labri.fr Partie I : Les Bases Sans donner des définitions trop rigoureuses, il faut bien commencer ce livre par énoncer

Plus en détail

Bienvenue dans le monde de la construction logicielle

Bienvenue dans le monde de la construction logicielle Chapitre 1 Bienvenue dans le monde de la construction logicielle Sommaire : 1.1 La construction logicielle, qu est-ce que c est? : page 3 1.2 Pourquoi la construction logicielle est-elle importante? :

Plus en détail

Comprendre la résolution

Comprendre la résolution Comprendre la résolution L image idéale est composée d une infinité de pixels et chacun d entre eux est capable de s afficher en une infinité de couleurs. Challenge impossible que les contraintes physiques

Plus en détail

UNE SOLUTION CRM CONÇUE POUR LA FORCE DE VENTE

UNE SOLUTION CRM CONÇUE POUR LA FORCE DE VENTE LIVRE BLANC UNE SOLUTION CRM CONÇUE POUR LA FORCE DE VENTE Comment choisir un CRM qui répondra à toutes les attentes de vos commerciaux www.aptean..fr LIVRE BLANC UNE SOLUTION CRM CONÇUE POUR LA FORCE

Plus en détail

Intégration de la plateforme de simulation SOFA dans un simulateur de chirurgie laparoscopique

Intégration de la plateforme de simulation SOFA dans un simulateur de chirurgie laparoscopique Intégration de la plateforme de simulation SOFA dans un simulateur de chirurgie laparoscopique Darina Dimitrova Laboratoire Recherche et Développement de l IRCAD (Institut National de Recherche contre

Plus en détail

I00 Éléments d architecture

I00 Éléments d architecture I00 I Exemples d ordinateur Pour les informaticiens, différentes machines de la vie courante sont des ordinateurs : par exemple les ordinateurs portables, les ordinateurs fixes, mais aussi les supercalculateurs,

Plus en détail

Développement itératif, évolutif et agile

Développement itératif, évolutif et agile Document Développement itératif, évolutif et agile Auteur Nicoleta SERGI Version 1.0 Date de sortie 23/11/2007 1. Processus Unifié Développement itératif, évolutif et agile Contrairement au cycle de vie

Plus en détail

Dossier 03 Périphériques d acquisition

Dossier 03 Périphériques d acquisition Dossier 03 Périphériques d acquisition I. PERIPHERIQUES D ACQUISITION... 1 II. CARACTERISTIQUES GENERALES... 2 A. CLAVIER... 2 B. SOURIS... 3 C. LECTEUR DE CODES A BARRES (OU CODE-BARRES)... 3 D. SCANNER...

Plus en détail

MICROPROCESSEUR. Nous prendrons comme exemple les processeurs Intel (qui sont le plus souvent utilisés dans les machines actuelles).

MICROPROCESSEUR. Nous prendrons comme exemple les processeurs Intel (qui sont le plus souvent utilisés dans les machines actuelles). MICROPROCESSEUR Le cerveau d un ordinateur est le microprocesseur, parfois appelé CPU ou tout simplement processeur. Le processeur effectue les calculs nécessaires au fonctionnement de l ordinateur et

Plus en détail

Notions 1fondamentales

Notions 1fondamentales Notions 1fondamentales Illustrator, pourquoi faire Que vous souhaitiez créer un logo ou une illustration élaborée à partir d une feuille blanche, Illustrator est l outil de dessin vectoriel par excellence.

Plus en détail

JASPERSOFT ET LE PAYSAGE ANALYTIQUE. Jaspersoft et le paysage analytique 1

JASPERSOFT ET LE PAYSAGE ANALYTIQUE. Jaspersoft et le paysage analytique 1 JASPERSOFT ET LE PAYSAGE ANALYTIQUE Jaspersoft et le paysage analytique 1 Ce texte est un résumé du Livre Blanc complet. N hésitez pas à vous inscrire sur Jaspersoft (http://www.jaspersoft.com/fr/analyticslandscape-jaspersoft)

Plus en détail

Projet informatique «Voyageur de commerce» Résolution approchée par algorithme génétique du problème du voyageur de commerce

Projet informatique «Voyageur de commerce» Résolution approchée par algorithme génétique du problème du voyageur de commerce Année 2007-2008 Projet informatique «Voyageur de commerce» Résolution approchée par algorithme génétique du problème du voyageur de commerce B. Monsuez Projet informatique «Voyageur de commerce» Résolution

Plus en détail

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

Mise en scène d un modèle dans l espace 3D CHAPITRE 3 Mise en scène d un modèle dans l espace 3D Blender permet de construire des espaces à la manière d une scène de théâtre. Pour cela, il présente dès l ouverture tout ce dont on a besoin : un

Plus en détail

Visual packaging solutions

Visual packaging solutions pack Visual packaging solutions Experience reality... VTales graphics Pourquoi utiliser Lyncis Pack? De par sa technologie virtuelle novatrice, le logiciel Lyncis Pack est un outil avantageux à plusieurs

Plus en détail

Chapitre 2 : Abstraction et Virtualisation

Chapitre 2 : Abstraction et Virtualisation Virtualisation et Cloud Computing Chapitre 2 : Abstraction et Virtualisation Objectifs Présenter la notion de niveaux d abstraction séparés par des interfaces bien définies Description des avantages et

Plus en détail

Animation. Principes et modélisation

Animation. Principes et modélisation Animation Principes et modélisation Les animations Une animation est obtenue par une succession rapide d'images (25 images par seconde en vidéo, 24 pour le cinéma). Pour une séquence donnée, chaque image

Plus en détail

RAPPORT DE CONCEPTION UML :

RAPPORT DE CONCEPTION UML : Carlo Abi Chahine Sylvain Archenault Yves Houpert Martine Wang RAPPORT DE CONCEPTION UML : Bamboo Ch@t Projet GM4 Juin 2006 Table des matières 1 Introduction 2 2 Présentation du logiciel 3 2.1 Précisions

Plus en détail

fichiers Exemple introductif : stockage de photos numériques

fichiers Exemple introductif : stockage de photos numériques b- La Gestion des données Parmi les matériels dont il a la charge, le système d exploitation s occupe des périphériques de stockage. Il s assure, entre autres, de leur bon fonctionnement mais il doit être

Plus en détail

Projet individuel d algorithmique-programmation AP1 : groupe 1.1 - complément bibliothèque graphique

Projet individuel d algorithmique-programmation AP1 : groupe 1.1 - complément bibliothèque graphique Projet individuel d algorithmique-programmation AP1 : groupe 1.1 - complément bibliothèque graphique octobre 2010 1 Affichage graphique statique Il en existe trois bibliothèques graphiques en Ocaml : la

Plus en détail

INITIATION AU SYSTEME D EXPLOITATION WINDOWS 2000

INITIATION AU SYSTEME D EXPLOITATION WINDOWS 2000 INITIATION AU SYSTEME D EXPLOITATION WINDOWS 2000 Introduction : Initiation à la Micro- Informatique 1. Matériel 2. Périphériques a) Le clavier b) La souris c) L écran d) L unité centrale e) L imprimante

Plus en détail

L INFORMATION GEOGRAPHIQUE

L INFORMATION GEOGRAPHIQUE Champs sur Marne ENSG/CERSIG Le 19-nove.-02 L INFORMATION GEOGRAPHIQUE Analyse Les données contenues dans un système d information géographique décrivent un terrain, et donc permettent d appréhender les

Plus en détail

Leçon N 4 Picasa 1 ère Partie

Leçon N 4 Picasa 1 ère Partie Leçon N 4 Picasa 1 ère Partie Nous allons maintenant revoir PICASA en détail, car c est le principal logiciel pour gérer et traiter ses photos et que vous serez amenés à utiliser assez souvent. PICASA

Plus en détail

Aider les exploitants à comprendre les résultats analytiques rapidement et facilement

Aider les exploitants à comprendre les résultats analytiques rapidement et facilement Juin 2013 Aider les exploitants à comprendre les résultats analytiques rapidement et facilement (page 1) De nouveaux outils pour offrir davantage d options afin de visualiser les résultats analytiques

Plus en détail

MVS Medical Visualisation Studio Version 1.0 Manuel utilisateur

MVS Medical Visualisation Studio Version 1.0 Manuel utilisateur MVS Medical Visualisation Studio Version 1.0 Manuel utilisateur Table des matières 1. Introduction... 3 2. Installation du logiciel... 3 3. Lancement du programme et ouverture d un fichier... 3 4. Manipulations

Plus en détail

Automatisation des copies de systèmes SAP

Automatisation des copies de systèmes SAP Pour plus d informations sur les produits UC4 Software, visitez http://www.liftoff-consulting.com/ Automatisation des copies de systèmes SAP Introduction Le thème de la copie des systèmes SAP est une source

Plus en détail

INF-130 Travail Pratique #2

INF-130 Travail Pratique #2 École de technologie supérieure INF-30 Travail Pratique #2 Travail individuel Tracé d un métro Francis Bourdeau, Frédérick Henri et Patrick Salois Remise à la 0 e semaine. Objectifs - Amener l étudiant

Plus en détail

Plan de cours. Approfondir les connaissances de l étudiante ou de l étudiant en infographie;

Plan de cours. Approfondir les connaissances de l étudiante ou de l étudiant en infographie; Faculté des sciences Centre de formation en technologies de l information Plan de cours Diplôme de développement du jeu vidéo (2 ième cycle) Cours : INF 776 Synthèse d images et animation 3D Trimestre

Plus en détail

Sélectionner la bonne base de données de gestion de configurations pour mettre en place une plate-forme efficace de gestion de services.

Sélectionner la bonne base de données de gestion de configurations pour mettre en place une plate-forme efficace de gestion de services. Solutions de Service Management Guide d achat Sélectionner la bonne base de données de gestion de configurations pour mettre en place une plate-forme efficace de gestion de services. Aujourd hui, toutes

Plus en détail

Rapport d activité. Mathieu Souchaud Juin 2007

Rapport d activité. Mathieu Souchaud Juin 2007 Rapport d activité Mathieu Souchaud Juin 2007 Ce document fait la synthèse des réalisations accomplies durant les sept premiers mois de ma mission (de novembre 2006 à juin 2007) au sein de l équipe ScAlApplix

Plus en détail

Thibault Denizet. Introduction à SSIS

Thibault Denizet. Introduction à SSIS Thibault Denizet Introduction à SSIS 2 SSIS - Introduction Sommaire 1 Introduction à SQL Server 2008 Integration services... 3 2 Rappel sur la Business Intelligence... 4 2.1 ETL (Extract, Transform, Load)...

Plus en détail

Imagerie 3D et mathématiques

Imagerie 3D et mathématiques Imagerie 3D et mathématiques Jacques-Olivier Lachaud Laboratoire de Mathématiques CNRS / Université de Savoie Fête de la Science, 13/10/2013 Galerie Eurêka Image et perception Synthèse d image 3D Imagerie

Plus en détail

Analyse abstraite de missions sous PILOT

Analyse abstraite de missions sous PILOT Analyse abstraite de missions sous PILOT Damien Massé EA 3883, Université de Bretagne Occidentale, Brest damien.masse@univ-brest.fr Résumé Nous étudions la possibilité de réaliser un analyseur par interprétation

Plus en détail

Besoin de concevoir des systèmes massivement répartis. Comment tester le système? Solution. Évaluation de systèmes répartis à large échelle

Besoin de concevoir des systèmes massivement répartis. Comment tester le système? Solution. Évaluation de systèmes répartis à large échelle Besoin de concevoir des systèmes massivement répartis. Évaluation de systèmes répartis à large échelle Sergey Legtchenko Motivation : LIP6-INRIA Tolérance aux pannes Stockage de données critiques Coût

Plus en détail

Si nous nous contentions d un champ de vision de 40, il faudrait quatre ou cinq perspectives pour représenter un espace d habitation.

Si nous nous contentions d un champ de vision de 40, il faudrait quatre ou cinq perspectives pour représenter un espace d habitation. Avant-propos La vue en perspective correspond bien à une perception humaine de l espace. La représentation d une perspective à l aide de la géométrie traduit, elle, avec précision les phénomènes optiques

Plus en détail

Programmation parallèle et distribuée

Programmation parallèle et distribuée Programmation parallèle et distribuée (GIF-4104/7104) 5a - (hiver 2014) Marc Parizeau, Département de génie électrique et de génie informatique Plan Mégadonnées («big data») Architecture Hadoop distribution

Plus en détail

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

Chapitre 22 Optimisation pour diffusion à l'écran, pour le web 1 1 9 9 7 7 Optimisation pour diffusion à l'écran, pour le web Diffusion pour le web........................ 31 Les paramètres avant l exportation................. 31 Optimisation pour le web......................

Plus en détail

CREER ET FORMATER UNE PARTITION DE DISQUE DUR 1 QUE SONT LES PARTITIONS ET LES LECTEURS LOGIQUES? 6

CREER ET FORMATER UNE PARTITION DE DISQUE DUR 1 QUE SONT LES PARTITIONS ET LES LECTEURS LOGIQUES? 6 Table des matières. CREER ET FORMATER UNE PARTITION DE DISQUE DUR 1 QUE SONT LES PARTITIONS ET LES LECTEURS LOGIQUES? 6 QUE SONT LES DISQUES DE BASE ET LES DISQUES DYNAMIQUES? 6 FORMATAGE DES DISQUES ET

Plus en détail

Images numériques. Notions et contenus. évaluée

Images numériques. Notions et contenus. évaluée Images numériques Thème Notions et contenus Compétence travaillée ou évaluée Résumé Mots clefs Académie Référence Auteur Transmettre et stocker de l information Caractéristiques d une image numérique :

Plus en détail

Chap. V : Les interruptions

Chap. V : Les interruptions UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Nous étudions dans ce chapitre les interruptions matérielles (ou externes), c est-à-dire déclenchées par le matériel (hardware)

Plus en détail

Les expériences d ERNI dans l univers du management, des processus et des technologies. Experience N 52. Mars 2012 Pas à pas vers de bonnes exigences

Les expériences d ERNI dans l univers du management, des processus et des technologies. Experience N 52. Mars 2012 Pas à pas vers de bonnes exigences Les expériences d ERNI dans l univers du management, des processus et des technologies Experience N 52 Mars 2012 OutsourcINg Pas à pas vers de bonnes exigences Outsourcing 10 11 Pas à pas vers de bonnes

Plus en détail

MODULE 5 5 ASTUCES _

MODULE 5 5 ASTUCES _ MODULE 5 5 ASTUCES Préambule Ce document reprend un ensemble d astuces que j ai développé au cours de ma pratique photographique. Ces astuces concernent de nombreux aspects allant de la gestion de la lumière

Plus en détail

Editez vos photos en ligne, avec Pixlr

Editez vos photos en ligne, avec Pixlr Editez vos photos en ligne, avec Pixlr Pixlr, est un outil en ligne gratuit permettant de retoucher vos images et photos. Ici, pas besoin de logiciel à installer, un simple navigateur Internet connecté

Plus en détail

Composition de scènes de Réalité Augmentée

Composition de scènes de Réalité Augmentée Composition de scènes de Réalité Augmentée J-Y. Didier 26/04/11 1 Système de RA Monde réel / Espace de travail Application de Réalité Augmentée Dispositifs de restitution Utilisateur Capteurs Modèles /

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

Angelcare. Étude de cas Consommateurs

Angelcare. Étude de cas Consommateurs Angelcare Étude de cas Consommateurs Angelcare et Mobilogie réinventent le moniteur pour bébé. Profil Angelcare offre aux parents la tranquillité d esprit en fabriquant des produits pour enfants novateurs

Plus en détail

8TRD147: Animation et images par ordinateur

8TRD147: Animation et images par ordinateur 8TRD147: Animation et images par ordinateur Rappels d OpenGL. Y. Chiricota Département d informatique et de mathématique Université du Québec à Chicoutimi / Certaines des illustrations de ce document proviennent

Plus en détail

Libérez votre intuition

Libérez votre intuition Présentation de Qlik Sense Libérez votre intuition Qlik Sense est une application nouvelle génération de visualisation de données en libre-service qui permet à chacun de créer facilement des visualisations

Plus en détail

L approche Bases de données

L approche Bases de données L approche Bases de données Cours: BD. Avancées Année: 2005/2006 Par: Dr B. Belattar (Univ. Batna Algérie) I- : Mise à niveau 1 Cours: BDD. Année: 2013/2014 Ens. S. MEDILEH (Univ. El-Oued) L approche Base

Plus en détail