Tutorial. Gwennaël ARBONA - 18 décembre 2013

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

Download "Tutorial. Gwennaël ARBONA - 18 décembre 2013"

Transcription

1 Gwennaël ARBONA - 18 décembre 2013

2 1. Le rendu 3D dans les jeux vidéo Introduction Si on s intéresse à la technologie derrière les jeux vidéo les plus récents, on peut donner deux chiffres surprenants. 10 millions de triangles : c est le volume de géométrie que les jeux les plus récents fournissent à la carte graphique pour une seule scène. 10 millièmes de secondes : c est le temps qu il faudra à votre carte graphique (haut de gamme) pour les afficher à l écran. Vous êtes probablement curieux de savoir comment les développeurs de jeu vidéo réussissent ce tour de force. Ce cours a pour objectif de faire un tour d horizon des différentes technologies qui permettent de parvenir à ce résultat. Ce n est pas un guide pratique pour mettre en place une solution précise dans un projet, mais une présentation générale, indépendante d une technologie précise. Mon objectif dans ce cours est double : proposer aux débutants un état de l art accessible ; guider les plus expérimentés vers des concepts récents qui sont rarement enseignés de façon simple. J utiliserais ici les termes techniques anglophones. Certains sont traduisibles en français, mais pour rester cohérent avec la littérature technique existante, j utiliserais le vocabulaire anglais. Gwennaël ARBONA 1

3 1.1. PREMIER APERÇU Introduction Le sujet est complexe, on va donc commencer par un exposé général sur les contraintes et les objectifs de la 3D en temps réel. C est une section qui expose les grands principes, on ne rentrera pas dans les détails tout de suite La programmation au service des artistes Je vais commencer ce cours par un avis personnel, au risque de montrer un parti pris : les jeux vidéo d aujourdhui sont surtout créés par des artistes. Bien entendu, c est une vision un peu caricaturale, mais le joueur qui découvre son nouveau jeu vidéo, explore un univers ou affronte ses amis en ligne profite avant tout d un travail artistique et ludique. Si vous lisez ce cours, vous êtes très probablement intéressé par la programmation et rassurezvous : il y a énormément de travail en programmation pour créer un jeu. Il faut simplement voir le développement logiciel comme un moyen de produire le jeu, au service des artistes, des scénaristes, des gens qui vont créer le jeu lui-même. La distinction est importante car le jeu vidéo, jusqu ici, a toujours été une course technologique pour produire le jeu le plus impressionnant visuellement, ce qui a longtemps placé la technologie comme principale valeur dans le jeu. Aujourd hui, à l écriture de ces lignes, le paysage est un peu différent : les jeux indépendants ont montré ces dernières années qu une partie des joueurs se lasse des blockbusters ; l avènement des moteurs de jeu permet à de petits studios voire à des amateurs de produire du contenu avec des rendus de qualité ; la direction artistique des jeux est devenu un choix libéré des contraintes techniques ; les performances du matériel permettent aujourd hui de réaliser quasiment n importe quelle scène, on peut de plus en plus laisser les artistes prendre le contrôle du jeu. Bien sûr, la course à la qualité ne s arrête pas pour autant et il y a encore beaucoup à faire, mais l époque est très intéressante pour s intéresser aux technologies de rendu, parce qu on travaille aujourd hui plus sur comment aider les artistes à produire une scène, plutôt que qu est-ce qu on peut produire avec ce qu on a. La dernière nouveauté sur le rendu, par exemple, c est le physically based shading : on propose aux artistes de définir le rendu des objets sur la base de propriétés physiques ( mon objet est métallique ), plutôt que des propriétés abstraites ( mon objet a une spécularité qui vaut a x (couleur) b ). Voilà donc quels sont les objectifs de la programmation au service du jeu vidéo. On passe à la technique! Gwennaël ARBONA 2

4 Votre carte graphique, en quelques mots La première chose à signaler, c est que votre carte graphique est un ordinateur à part entière, qui fonctionne de façon autonome avec son propre système d exploitation, ses propres langages de programmation et qui dispose d une puissance de calcul colossale (largement supérieure à celle de votre processeur, pour du calcul brut). Comme un ordinateur, elle se compose d un processeur, de mémoire dédiée, d un étage d alimentation électrique, et de mémoire Flash pour y stocker le logiciel embarqué. La carte graphique ne permet pas d exécuter des programmes classiques mais elle est en revanche optimisée pour exécuter des calculs sur des volumes monstrueux de données. Pour vous donner une idée, la liaison entre le processeur graphique et sa mémoire dédiée est tellement performante que vous pourriez y faire passer le contenu d un disque dur entier en quelques secondes. Le processeur est typiquement cadencé à une fréquence relativement faible (quelques centaines de MHz) mais compense cette vitesse par un nombre impressionant d unités de calcul : jusqu à un millier d unités, contre seulement 4 sur les processeurs actuels. La carte graphique est reliée à votre ordinateur par le bus PCI-Express. Là encore, on est dans la débauche de performances avec un débit de l ordre du gigaoctet par seconde, qui permet de charger les textures et autres ressources depuis votre disque dur. Et bien sûr, la carte graphique a ses périphériques, les écrans! Il est temps d introduire quelques termes techniques : GPU : Graphics Processing Unit, c est le processeur de la carte graphique ; CPU : Central Processing Unit, le processeur de votre ordinateur ; RAM : Random Access Memory, la mémoire de votre PC ; VRAM : c est le terme que j emploierais pour désigner la mémoire vidéo ; PCIE : PCI-Express, le bus qui relie votre carte graphique au reste du système ; Shader Core : l équivalent pour une carte graphique des coeurs de votre processeur, nous y reviendrons. Mettons tout ça en images... Notons pour les puristes que le CPU ne s occupe pas réellement du transfert des données. Aujour- Gwennaël ARBONA 3

5 d hui, on va plutôt chercher à faire correspondre une zone mémoire en VRAM à une zone mémoire en RAM, charger une tetxure en RAM depuis le disque dur, et laisser le matériel se charger de la copie. On parlera de Direct Memory Access ou DMA. Si ce concept vous laisse de marbre, pas de panique, de nos jours ça ne concerne plus les développeurs de jeu. Tout va bien? On attaque la suite! Gwennaël ARBONA 4

6 Shaders et textures Vous savez sans doute déjà que les scènes 3D sont composées de triangles : chaque objet est transmis à la carte graphique sous forme d une longue liste de triangles. Du point de vue artistique, on parle souvent de wireframe. On appelle vertex un sommet dans ces triangles. Un objet de jeu vidéo Et son wireframe sous forme de triangles Chaque élément d une scène 3D est donc constitué d un flot de triangles disposant d un aspect particulier (métal, peau, bois, etc). Dans le langage courant du jeu vidéo amateur, on parle souvent de textures, sans trop savoir à quoi le terme fait référence. C est ici qu on va voir ce qui se passe réellement entre les triangles et le rendu, avec la notion de shader. Gwennaël ARBONA 5

7 Un shader, c est un programme qui s exécute sur le GPU. Il est rédigé dans un langage particulier, propre à la technologie (DirectX, OpenGL, Mantle, etc) ou au matériel (chaque GPU a ses variantes d assembleur), et sert à définir le rendu des objets 3D en fonction de leur environnement. Un shader utilise des ressources (essentiellement des textures), des paramètres (position de l objet, position de la caméra, positions des sources de lumière...) pour produire un résultat (les pixels à l écran). Ressources et résultats des shaders En pratique, il n y a pas un seul shader mais un enchaînement de plusieurs types de shaders, qui ont chacun un rôle spécifique. Nous verrons bientôt en détail comment tout ça fonctionne. Les performances du GPU, la complexité des shaders, le nombre de triangles, la résolution des textures sont autant de paramètres qui jouent sur la vitesse du rendu. Si vous avez été trop ambitieux, le temps d exécution de vos shaders va dépasser une limite acceptable, et ralentir l arrivée de l image à l écran. C est ce phénomène qui provoque les problèmes de performance en jeu : mauvais framerate, problèmes de tearing, etc. Gwennaël ARBONA 6

8 De retour chez les artistes Ecrire des shaders est une tâche extrêmement difficile, réservée à des gens très spécialisés qui savent aussi bien programmer que produire du contenu graphique. En pratique, dans l industrie du jeu vidéo, un artiste va utiliser des mécanismes propriétaires dépendant de la technologie. Il se contente de donner des consignes au moteur, souvent par le biais de langages graphiques, pour faire générer automatiquement des shaders appropriés. On ne parle ainsi plus de shader, mais de material. Le material est une vision plus haut niveau, centrée sur l apparence visuelle de l objet ; il peut dépendre de plusieurs shaders. On verra plus tard que dans un pipeline moderne, associer un Material à un shader particulier est hors de propos. On peut voir le shader comme une fonction au sens de la programmation, et le material comme une fonction au sens de la spécification. Un exemple d éditeur de material dans un moteur de jeu Pour résumer, un artiste va produire trois éléments distincts. Le principal, c est bien sûr l objet lui-même, c est-à-dire sa géométrie, les triangles qui le composent, importés depuis un modeleur 3D. Les textures de l objet représentent le deuxième élément. Le moteur de jeu se charge d acheminer ces textures à des shaders, dont l architecture et la configuration va dépendre du dernier élément à charge de l artiste : le material. Gwennaël ARBONA 7

9 Conclusion Si vous n étiez pas encore convaincu de l intérêt d un moteur de jeu, c est l occasion ou jamais de changer d avis : le travail existant est considérable! Produire un jeu vidéo à partir de zéro est un travail titanesque qui se réserve à des équipes nombreuses, talentueuses et bien financées. On va maintenant voir en détail quelles méthodes sont employées, sous le capot, pour faire correspondre les besoins des artistes aux capacités du matériel. Gwennaël ARBONA 8

10 1.2. UN PIPELINE DE RENDU BASIQUE Introduction Dans cette partie, on va plonger dans la technique pour découvrir comment les scènes 3D crées par les artistes se transforment en images à votre écran. C est une approche simple, proche de ce qui se faisait il y a encore quelques années, qui pose les concepts les plus importants. Nous verrons plus tard comment cette approche s est améliorée depuis Géométrie et textures L aspect le plus évident de la scène, c est la géométrie, les objets 3D qui la constituent. C est toujours la première étape du rendu lui-même car elle sert de base aux étapes suivantes. C est là qu on va commencer, il faut cependant savoir que votre moteur de rendu, quel qu il soit, aura déjà tavaillé un peu en amont pour supprimer tous les objets qui ne seront pas visibles. C est ce qu on appelle le culling. Le moteur de rendu va ensuite charger les objets sur la carte graphique, avec quelques subtilités : les objets sont chargés sous la forme d une liste de faces, habituellement des triangles ; chaque face va posséder une normale, c est-à-dire un vecteur qui indique la direction de la face ; chaque vertex est également associée à une coordonnée dite coordonnée UV, c est-à-dire la position de ce vertex sur les textures : c est comme ça qu on associe à une face la portion de texture qui lui correspond ; d autres propriétés peuvent également être calculées, comme la tangente à la face. Comme vous le voyez, on a déjà un gros paquet d informations à faire traiter. On verra plus tard que cette approche est un peu simpliste, il y a aujourd hui quelques concepts supplémentaires qui permettent de gagner encore un peu de temps de calcul au niveau de la géométrie. Dans le même temps, on va également charger en mémoire les textures que l artiste a choisi d utiliser. Leur nombre varie : il peut ne pas y en avoir du tout, mais on peut en trouver près d une dizaine pour un seul objet si les shaders qui s y appliquent sont complexes! Là encore, le moteur de rendu a des responsabilité supplémentaires, par exemple empêcher la duplication de ressources en mémoire. Gwennaël ARBONA 9

11 Les shaders en détail A ce niveau de rendu, on dispose d une scène 3D. Le pipeline de rendu prend un tournant au moment où on transforme cette scène en une image 2D, un procédé connu sous le nom de rasterization. L algorithme en lui-même ne nous intéresse pas particulièrement ici, retenez simplement qu on aplatit la scène 3D pour produire une image, tout en conservant aussi les données sous une forme 3D : elles vont servir à calculer l éclairage de la scène. La rasterization s articule autour des shaders. Les shaders sont des programmes qui s exécutent sur le GPU, ils sont responsables de la transformation de la scène en une image avec éclairage, textures, effets spéciaux. Ils constituent les éléments essentiels du pipeline de rendu, c est avec eux qu on implémente tous les effets appliqués à la scène 3D, des lumières au post-processing. Dans le cadre de ce cours, on évoquera les deux principaux types de shaders : les vertex shaders rassemblent les données de la géométrie et les fournissent au rasterizer ; les fragment shaders réalisent l éclairage, appliquent les textures, produisent les pixels. Il en existe cependant une variété d autres : les tessellation shaders, optionnels, densifient la géométrie des objets par subdivision des faces (tessellation) en sortie des vertex shaders ; les geometry shaders, optionnels, réalisent des opérations supplémentaires pour transformer la géométrie ; il existe également des compute shaders qui sont utilisés en dehors de la 3D, par exemple pour du calcul scientifique. On va voir le chemin des données dans la carte graphique pour mieux comprendre ce qui se passe. Les shaders optionnels sont absents du schéma pour éviter de l alourdir. On prend l exemple d une sène avec deux objets, chacun disposant de son vertex et fragment shader. Pour chaque pixel de l image à produire, on va se projeter dans la scène 3D et déterminer quels points de celle-ci sont candidats pour produire le pixel. C est ce qu on appelle le fragment : une portion de géométrie à laquelle on va appliquer le fragment shader, lequel produira un pixel. Le fragment shader, aussi connu sous le nom de pixel shader s exécute après le vertex shader et se base sur les données de rasterization. Le fragment shader n est donc pas directement en sortie du vertex shader! C est dans cet étage que l on crée la couleur. On va appliquer les textures aux objet, simuler le relief de l objet, l éclairage, appliquer des ombres... Le fragment shader est habituellement plus complexe que le vertex shader, et surtout plus gourmand en temps de calcul. Gwennaël ARBONA 10

12 Le forward shading On a vu que les shaders s exécutent sur des portions individuelles de la scène. Les vertex shaders fonctionnent en parallèle sur les vertices, les fragment shaders fonctionnent en parallèle sur les fragments. La nature massivement parallèle des GPU (des centaines, voire des milliers de shader cores) découle directement de cette observation. Cette approche est appelée le forward shading. On envoie toute la géométrie, et pour chaque fragment issu du rasterizer, on calcule l influence de toutes les sources lumineuses de la scène. C est un modèle simple à implémenter, qui a régné sur les jeux vidéo pendant des années. Le matériel a évolué pour suivre cette approche et de nombreux éléments du rendu sont réalisés directement dans le matériel avec des circuits dédiés (par exemple, l anti-aliasing). Cette approche pose néanmoins un grave problème : sa complexité est O(fragments * sources lumineuses). Une scène avec 100 lumières est donc 10 fois plus lente à calculer qu une scène avec 10 lumières. C est pour cette raison que l éclairage, dans une très large majorité des jeux vidéo, se base sur une simulation statique réalisée sur les niveaux de jeu vidéo (le lightmapping). Au début des années 2000, l éclairage dynamique, calculé par des shaders à chaque frame, était considéré comme un luxe, quelque chose qu on ne pouvait utiliser que sur des éléments mobiles comme des véhicules. Pendant la seconde partie des années 2000, les jeux vidéo utilisaient habituellement du lightmapping en duo avec un éclairage dynamique limité à quelques sources lumineuses. Gwennaël ARBONA 11

13 L éclairage dans un niveau de [DeepVoid](http ://deepvoid.eu), calculé entièrement de façon statique Gwennaël ARBONA 12

14 Transparence et glow Pour clore ce chapitre, prenons un cas particulier : les objets transparents. Un objet transparent a besoin d être calculé après tous les autres, puisque son aspect dépend de ce qui est affiché derrière. Il n y a pas de solution miracle : il faut séparer le rendu en deux passes, c est-à-dire qu on le fait deux fois : une première fois pour faire le rendu de tous les objets opaques, et une seconde fois pour faire le rendu de chaque objet transparent. En pratique, si on veut avoir deux objets transparents superposés, il faut ensuite les rendre un par un, en tenant compte de leur profondeur (depth) dans la scène : le plus profond est calculé en premier. La même problématique se pose si on souhaite produire un effet de glow. Le glow, c est ce qui donne l impression qu un objet est lumineux. Regardez de près les lumières de la scène : LEDs, spots, écrans Pour produire un effet de glow, on réalise une passe de rendu dédiée qui contient uniquement les portions émettrices de lumière ; on lui applique un léger flou avant de l ajouter à la scène. Gwennaël ARBONA 13

15 Conclusion En pratique, le rendu d une scène est un véritable mille-feuille. En plus du rendu de chaque lumière, une scène typique va exiger plusieurs passes de transparence suivant le rendu souhaité, des passes pour des effets particuliers (glow, distorsion...) ou encore des passes pour des problèmes de gameplay (par exemple, dans un FPS, l arme est toujours au premier plan, même si de la géométrie vous rentre dedans). On verra dans un autre chapitre comment une partie de ces problèmes se règle, mais on peut déjà tirer plusieurs leçons de ce chapitre : un système de rendu parfaitement optimisé ne l est que pour une scène précise ; un système de rendu générique, indépendant de la scène est complexe à mettre en place ; il n y a jamais de solution parfaite dans le domaine du temps réel : l important, c est que le rendu soit correct, à un framerate décent. On va maintenant plonger un peu plus profondément dans la technique, avec un chapitre dédié aux shaders. Gwennaël ARBONA 14

16 1.3. LES SHADERS Introduction Dans cette partie, on va s intéresser de plus près aux shaders. C est l occasion de voir un peu de code! Vertex shaders Les vertex shaders interviennent au tout début du rendu, quand la géométrie de la scène a été chargée dans la carte graphique. Ils sont responsables, pour chaque vertex, du traitement des données dont on vient de parler ainsi que d autres paramètres que le moteur de rendu fournit : la transformation de la caméra ; la transformation de l objet ; la position du vertex en train d être traité ; parfois une couleur associée au vertex ; toute autre donnée jugée utile, suivant les besoins. La matrice de transformation est une donnée complexe composée de la position et de la rotation de l objet dans l espace. C est un format couramment employé à bas niveau car il permet des opérations simples avec les vecteurs, et se prête très bien au GPU puisqu il se base sur du calcul matriciel. Le rôle du vertex shader est souvent relativement mineur. Il se borne à des opérations simples, par exemple le changement de repère entre le repère global de la scène et le repère local de l objet (ou de la caméra). Il se charge de communiquer au reste de la chaîne de rendu les coordonnées UV, la position de l objet ou sa normale. On va voir quelques exemples de shaders en GLSL. La syntaxe ne sera pas enseignée ici, elle est très proche du C et sera compréhensible pour tout le monde. Voyons un premier exemple : #version 150 uniform mat4 worldviewproj; in vec4 uv0; in vec4 vertex; out vec2 ouv0; void main() { gl Position = worldviewproj * vertex; ouv0 = uv0; } Ce shader prend en entrée la position (vertex), prend en paramètre la transformation du monde dans le repère de la caméra (worldviewproj ) et fournit au fragment shader la position du vertex (gl Position) et ses coordonnées UV (ouv0 ). C est à peu près le plus simple qu on puisse faire, et ça suffit à texturer correctement un objet. Notez que gl Position est un mot-clef de GLSL qui n a pas besoin d être déclaré, contrairement à ouv0. Pour résumer, le vertex shader se charge de transformations géométriques basiques, et sert d interface entre le moteur de rendu et le fragment shader que nous allons maintenant étudier. Gwennaël ARBONA 15

17 Fragment shaders Le fragment shader a un fonctionnement similaire, à la seule différence qu il est appelé sur des fragments et non des vertices. On garde la même syntaxe que le vertex shader, on prend comme entrée les sorties de celui-ci et cette fois-ci, le shader renvoie une seule et unique donnée : la couleur du pixel. Pour un objet typique, voici les tâches du fragment shader : charger depuis la mémoire vidéo la ou les textures utilisées ; déterminer la couleur de base, ou diffuse du fragment, le plus souvent en s aidant d une texture, la diffuse map ; déterminer la normale du fragment, en fonction de la normale de la face et d une éventuelle normal map, une autre texture utilisée pour créer des variations de géométrie ; déterminer la couleur spéculaire du fragment, c est-à-dire la couleur des réflexions lumineuses, souvent à partir d une specular map ; à partir de ces données, déterminer la couleur finale du fragment en fonction de l éclairage, en additionnant l effet de chaque source lumineuse dans la scène ; dans certains cas, ajouter des effets supplémentaires comme le glow, où on pourra utiliser... Une glow map. Gwennaël ARBONA 16

18 Un objet avec ses textures : diffuse map en haut à droite, normal map en abs à gauche, glow map en bas à droite Comme on l imagine, artiste et programmeur doivent se mettre d accord pour qu un tel système fonctionne. Il n y a pas de règles universelles sur le fonctionnement de ces textures, c est à l auteur des shaders de proposer un modèle d éclairage en collaboration avec les artistes. Dans DeepVoid, le format adopté était le suivant : une diffuse map, avec un canal alpha pour la transparence une normal map, avec un canal alpha pour contrôler l effet de la lumière éventuellement, une glow map D autres développeurs ont adopté des approches plus curieuses, comme stocker quatre textures monochrome dans les quatre canaux d une texture RGBA, pour les colorer ensuite dans le fragment shader. C est à vous de décider! Un premier exemple d abord, pour produire un pixel blanc : Gwennaël ARBONA 17

19 #version 150 out vec4 ppixel; void main() { ppixel = vec4(1,1,1,1); } Le code est trivial, seul détail intéressant ici : on produit une valeur RGBA, une couleur sur 4 canaux. Chaque canal contient une valeur de type float, votre moteur de rendu se charge lui de configurer la précision entière du rendu final (8 bits par canal, 16 bits par canal, etc). La présence d un canal alpha est un indice : deux fragments peuvent se superposer pour produire un pixel. Un exemple plus intéressant consiste à associer une texture à l objet, en ajoutant un Sampler que le moteur de rendu se chargera de connecter à une texture en mémoire : #version 150 uniform sampler2d TextureSample; in vec2 ouv0; out vec4 ppixel; void main() { ppixel = texture(texturesample, ouv0); } On renvoie simplement le pixel présent dans la texture aux coordonnées UV du fragment. On rappelle que les coordonnées UV ne sont pas celles que le vertex shader a fourni : elles sont produites à partir de celles-ci, par interpolation, pendant la rasterization. Ce shader correspond néanmoins au premier vertex shader proposé précédemment. Gwennaël ARBONA 18

20 Exemple complet : éclairage et normal mapping Prenons un exemple plus complexe avec un vertex et fragment shader prévu pour du normal mapping. Le normal mapping est une technique qui consiste à simuler des variations de géométrie à partir d une texture, ce qui est bien moins gourmand en ressources qu une géométrie plus complexe. Voyons d abord le vertex shader : #version 150 uniform vec4 lightposition; uniform vec3 eyeposition; uniform mat4 worldviewproj; in vec4 vertex; in vec3 normal; in vec3 tangent; in vec4 uv0; out vec4 vuv0; out vec3 veyedir; out vec3 vnormal; out vec3 vlightdir; out vec3 vhalfangle; void main() { gl Position = worldviewproj * vertex; // La direction de la lumière est calculée par rapport au vertex vec3 lightdir = normalize(lightposition.xyz - (vertex * lightposition.w).xyz); vec3 binormal = cross(normal, tangent); // Repère local du vertex mat3 rotation = mat3( vec3(tangent[0], binormal[0], normal[0]), vec3(tangent[1], binormal[1], normal[1]), vec3(tangent[2], binormal[2], normal[2])); // Données de sortie vuv0 = uv0; vnormal = normalize(normal.xyz); veyedir = normalize(eyeposition - vertex.xyz); vlightdir = rotation * lightdir; vhalfangle = rotation * (veyedir + lightdir); } Gwennaël ARBONA 19

21 On retrouve la même structure, mais cette fois-ci on passe plus d informations au fragment shader. On calcule un repère local défini par la normale, la tangente et la binormale (normale t angente), qu onutilisepourdét Maintenant, découvrons ensembles le fragment shader correspondant : #version 150 uniform vec4 lightdiffuse; uniform vec4 lightspecular; uniform sampler2d diffusemap; uniform sampler2d normalmap; uniform sampler2d specmap; in vec4 vuv0; in vec3 veyedir; in vec3 vnormal; in vec3 vlightdir; in vec3 vhalfangle; out vec4 ppixel; void main() { vec4 diffusedata = texture2d(diffusemap, vuv0.xy); vec3 normaldata = (texture2d(normalmap, vuv0.xy).xyz); vec3 specdata = texture2d(specmap, vuv0.xy).xyz; // On calcule l infuence de l éclairage en fonction de la normale float lightfactor = clamp(dot(normaldata, vlightdir), 0.0, 1.0); float specfactor = clamp(dot(normaldata, vhalfangle), 0.0, 1.0); // La couleur est déterminée avec l éclairage ppixel = diffusedata lightfactor lightdiffuse; ppixel += specdata specfactor lightfactor * lightspecular; ppixel.w = diffusedata.w; } Le processus consiste ici à calculer une normale modifiée pour le fragment (normaldata) à partir d une normal map, et de s en servir pour modifier l éclairage. On peut noter la présence de cinq paramètres : trois textures (diffusemap, normalmap et specmap) ; deux paramètres dépendant de la source lumineuse traitée : lightdiffuse, la couleur affectant la diffuse et lightspecular, la couleur affectant les reflets. C est un shader relativement complexe, le détail de l implémentation n est pas important ici. Ce qui compte, c est de comprendre le processus qui conduit, depuis l importation de la géométrie, à produire un pixel en fonction des sources de lumière, des textures. Gwennaël ARBONA 20

22 Conclusion Au terme de ces premiers chapitres, on a fait le tour d un pipeline basique de rendu dans un jeu vidéo. La partie suivante va présenter les technologies mises en place ces dernières années pour augmenter la qualité du rendu dans un environnement toujours très limité. Gwennaël ARBONA 21

23 1.4. LE DEFERRED SHADING Introduction Dans ce nouveau chapitre, on va étudier une nouvelle façon de calculer l éclairage Le deferred shading Comme on l a vu dans les parties précédentes, avant 2010 un jeu vidéo 3D typique exploitait des lightmaps pour éviter de calculer l éclairage en temps réel. Des moteurs comme Source ou Unreal Engine 3 exigeaient un calcul statique de tout l éclairage, qui pouvait durer près d une heure. L éclairage dynamique était réduit au minimum et était inconsistent avec l éclairage statique, produisant souvent des artefacts. En résumé, l éclairage était un énorme travail pour les créateurs. En introduction, je disais que les développeurs sont là pour aider les artistes. Et bien sûr, une solution a fini par se présenter : le deferred shading. Le principe du deferred shading est d appliquer les shaders (éclairage compris) en une seule fois à une scène complète, au lieu d appliquer successivement chaque lumière à tous les objets. Dans une scène exploitant cette technique, on sépare la génération de la scène et son éclairage. On va utiliser des shaders pour produire un geometry buffer ou GBuffer, qui contient la géométrie, les couleurs des objets, les normales, leur spécularité ou toute autre propriété jugée utile. Une structure courante pour le GBuffer est un modèle avec deux textures RGBA : une texture stocke les diffuse maps, les couleurs ; avec la spécularité en alpha ; une seconde texture stocke les normales ; avec la profondeur de la scène (du point de vue de la caméra) en alpha. Ces textures ont la résolution de votre écran et sont produites par des shaders très simples, qui se réduisent à stocker des données. En sortie de ce GBuffer, on va appliquer le shading pour chaque lumière pour produire la scène, en utilisant un deuxième jeu de shaders. Le deferred shading est une technique bien plus complexe. Pire, elle n est pas suffisante à rendre la scène : les objets transparents ont toujours besoin d une passe de rendu séparée. En pratique, le deferred shading s accompagne donc systématiquement de passes en forward shading. Enfin, le coût en performances s aplatit : il est plus lourd en mémoire, mais grossit moins avec le nombre de lumières, ce qui a peu à peu imposé la technique comme une référence. Gwennaël ARBONA 22

24 Une scène en exemple Gwennaël ARBONA 23

25 Aller plus loin avec l éclairage : la global illumination Gwennaël ARBONA 24

26 Conclusion Le deferred shading n est pas un solution miracle à tous les problèmes. C est une autre façon d aborder l éclairage, qui va faciliter le travail pour le post-processing que nous verrons dans le prochain chapitre, mais qui se base sur les mêmes principes que le forward shading, en composant différentes passes de rendu. Gwennaël ARBONA 25

27 1.5. POST-PROCESSING Introduction Un retour aux sources Gwennaël ARBONA 26

28 Des scènes réalistes avec l ambient occlusion Gwennaël ARBONA 27

29 Bloom et HDR Gwennaël ARBONA 28

30 Conclusion Conclusion Ce tuto est en cours de rédaction. La suite arrive. Gwennaël ARBONA 29

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

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013 Rendu Temps Réel - OpenGL 4 et compute shaders December 18, 2013 résumé des épisodes précédents... création des objets opengl, organisation des données, configuration du pipeline, draw,... opengl 4.3 :

Plus en détail

Rendu temps réel de mer et de nuages

Rendu temps réel de mer et de nuages 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

Plus en détail

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

RIE LE RENDU THEO. 2 e trim ÉTAPE DE FINITION BOÎTE DE DIALOGUE. remarques THEO RIE LE RENDU 2 e trim JANVIER 2008 remarques ÉTAPE DE FINITION Le rendu est la partie finale de notre création, à ce moment on décide que notre 3D est finie et l on en réalise une image 2D Cette image

Plus en détail

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

TPs Architecture des ordinateurs DUT Informatique - M4104c SUJETS. R. Raffin Aix-Marseille Université romain.raffin-at-univ-amu.fr TPs Architecture des ordinateurs DUT Informatique - M4104c SUJETS R. Raffin Aix-Marseille Université romain.raffin-at-univ-amu.fr 2015 Table des matières 1 TP 1 : prise en main 2 1.1 Introduction.......................................................

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

Groupe Eyrolles, 2006, ISBN : 2-212-11959-3

Groupe Eyrolles, 2006, ISBN : 2-212-11959-3 Groupe Eyrolles, 2006, ISBN : 2-212-11959-3 annexe B Piano Corner, (c) 2005 par Zsolt Stefan : http://deeppixel.uw.hu/gallery.html YafRay, le moteur de rendu photoréaliste Dès sa création, par une équipe

Plus en détail

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

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique Architecture d ordinateur : introduction Dimitri Galayko Introduction à l informatique, cours 1 partie 2 Septembre 2014 Association d interrupteurs: fonctions arithmétiques élémentaires Elément «NON» Elément

Plus en détail

Leçon 1 : Les principaux composants d un ordinateur

Leçon 1 : Les principaux composants d un ordinateur Chapitre 2 Architecture d un ordinateur Leçon 1 : Les principaux composants d un ordinateur Les objectifs : o Identifier les principaux composants d un micro-ordinateur. o Connaître les caractéristiques

Plus en détail

Gestion de scène pour les moteurs 3D

Gestion de scène pour les moteurs 3D 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

Plus en détail

Cours Informatique 1. Monsieur SADOUNI Salheddine

Cours Informatique 1. Monsieur SADOUNI Salheddine Cours Informatique 1 Chapitre 2 les Systèmes Informatique Monsieur SADOUNI Salheddine Un Système Informatique lesystème Informatique est composé de deux parties : -le Matériel : constitué de l unité centrale

Plus en détail

IV- Comment fonctionne un ordinateur?

IV- Comment fonctionne un ordinateur? 1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions

Plus en détail

Cours 1 : Qu est-ce que la programmation?

Cours 1 : Qu est-ce que la programmation? 1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre

Plus en détail

Sillage Météo. Notion de sillage

Sillage Météo. Notion de sillage Sillage Météo Les représentations météorologiques sous forme d animation satellites image par image sont intéressantes. Il est dommage que les données ainsi visualisées ne soient pas utilisées pour une

Plus en détail

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

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN fbertin@neotilus.com Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184 Frédéric BERTIN fbertin@neotilus.com Présentaion : Mobile 3D Graphics API JSR 184 M3G :présentation Package optionnel de l api J2ME. Prend

Plus en détail

Windows 7 - Installation du client

Windows 7 - Installation du client Windows 7 - Installation du client 1 - Présentation Windows 7 est un système d exploitation client basé sur le noyau NT 6.1, disponible en six versions, commercialisé depuis octobre 2009. Résumé des fonctionnalités

Plus en détail

Vers du matériel libre

Vers du matériel libre Février 2011 La liberté du logiciel n est qu une partie du problème. Winmodems Modem traditionnel Bon fonctionnement Plus cher Electronique propriétaire Blob sur DSP intégré au modem Bien reçu par les

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

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

IFT3355: Infographie Sujet 6: shading 7 (illumination globale 4) IFT3355: Infographie Sujet 6: shading 7 (illumination globale 4) Derek Nowrouzezahrai Département d informatique et de recherche opérationelle Université de Montréal Ambient Occlusion expériment numérique

Plus en détail

La mémoire. Un ordinateur. L'octet. Le bit

La mémoire. Un ordinateur. L'octet. Le bit Introduction à l informatique et à la programmation Un ordinateur Un ordinateur est une machine à calculer composée de : un processeur (ou unité centrale) qui effectue les calculs une mémoire qui conserve

Plus en détail

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs Architecture Matérielle des Systèmes Informatiques. S1 BTS Informatique de Gestion 1 ère année THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT Dossier 1 L environnement informatique. Objectifs Enumérer et

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

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

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Chapitre V : La gestion de la mémoire Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Introduction Plusieurs dizaines de processus doivent se partager

Plus en détail

Architecture des Ordinateurs. Partie II:

Architecture des Ordinateurs. Partie II: Architecture des Ordinateurs Partie II: Le port Floppy permet le raccordement du lecteur de disquette àla carte mère. Remarque: Le lecteur de disquette a disparu il y a plus de 6 ans, son port suivra.

Plus en détail

Démontage d'un ordinateur

Démontage d'un ordinateur Espaces multimédias Communauté de Communes Moyenne Vilaine et Semnon : Démontage d'un ordinateur 1- A quoi sert-il de démonter son ordinateur? A) Par simple curiosité B) Pour nettoyer C) Pour remplacer

Plus en détail

Ce dont nous avons besoin pour suivre ce tutorial :

Ce dont nous avons besoin pour suivre ce tutorial : Ce dont nous avons besoin pour suivre ce tutorial : -3ds max Version d essai disponible ICI -S2 CMX Viewer A télécharger ICI -Brazil r/s A télécharger ICI -CMX importer A télécharger ICI. Il suffit de

Plus en détail

TD : Codage des images

TD : Codage des images TD : Codage des images Les navigateurs Web (Netscape, IE, Mozilla ) prennent en charge les contenus textuels (au format HTML) ainsi que les images fixes (GIF, JPG, PNG) ou animée (GIF animée). Comment

Plus en détail

GMIN 330 Nancy Rodriguez

GMIN 330 Nancy Rodriguez Unity TP3 Librement adapté et traduit de http://unity3d.com/learn/tutorials/modules/beginner/physics/assignments/bouncing-ball http://docs.unity3d.com/documentation/manual/instantiatingprefabs.html http://3dfoin.com/index-3.html

Plus en détail

Matériel & Logiciels (Hardware & Software)

Matériel & Logiciels (Hardware & Software) CHAPITRE 2 HARDWARE & SOFTWARE P. 1 Chapitre 2 Matériel & Logiciels (Hardware & Software) 2.1 Matériel (Hardware) 2.1.1 Présentation de l'ordinateur Un ordinateur est un ensemble de circuits électronique

Plus en détail

Tests de performance du matériel

Tests de performance du matériel 3 Tests de performance du matériel Après toute la théorie du dernier chapitre, vous vous demandez certainement quelles sont les performances réelles de votre propre système. En fait, il y a plusieurs raisons

Plus en détail

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES 1 DECOUVERTE DE LA VIRTUALISATION... 2 1.1 1.2 CONCEPTS, PRINCIPES...2 UTILISATION...2 1.2.1 Formation...2

Plus en détail

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

Eternelle question, mais attention aux arnaques Question qui est souvent mise en premier plan => ce n est pas une bonne idée Son PC portable 1 2 Eternelle question, mais attention aux arnaques Question qui est souvent mise en premier plan => ce n est pas une bonne idée Analysons d abord vos besoins Ensuite on n y reviendra 3

Plus en détail

L ORDINATEUR. Les composants. La carte mère. Le processeur. Fréquence

L ORDINATEUR. Les composants. La carte mère. Le processeur. Fréquence L ORDINATEUR Les composants La carte mère Elle se trouve au centre de l'ordinateur et connecte tous les composants PC. La carte mère contient les connexions pour le processeur, la mémoire et les unités

Plus en détail

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

Analyse de la vidéo. Chapitre 4.1 - La modélisation pour le suivi d objet. 10 mars 2015. Chapitre 4.1 - La modélisation d objet 1 / 57 Analyse de la vidéo Chapitre 4.1 - La modélisation pour le suivi d objet 10 mars 2015 Chapitre 4.1 - La modélisation d objet 1 / 57 La représentation d objets Plan de la présentation 1 La représentation

Plus en détail

HP 600PD TWR i34130 500G 4.0G 39 PC

HP 600PD TWR i34130 500G 4.0G 39 PC HP 600PD TWR i34130 500G 4.0G 39 PC Réf : 2880117 EAN :888182161739 Réf. Fabricant :E4Z60ET#ABF Poids brut: 12 Kg Spécifications principales Description du produit Facteur de forme Localisation Processeur

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

Initiation au HPC - Généralités

Initiation au HPC - Généralités Initiation au HPC - Généralités Éric Ramat et Julien Dehos Université du Littoral Côte d Opale M2 Informatique 2 septembre 2015 Éric Ramat et Julien Dehos Initiation au HPC - Généralités 1/49 Plan du cours

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

PRODUIRE DES SIGNAUX 1 : LES ONDES ELECTROMAGNETIQUES, SUPPORT DE CHOIX POUR TRANSMETTRE DES INFORMATIONS

PRODUIRE DES SIGNAUX 1 : LES ONDES ELECTROMAGNETIQUES, SUPPORT DE CHOIX POUR TRANSMETTRE DES INFORMATIONS PRODUIRE DES SIGNAUX 1 : LES ONDES ELECTROMAGNETIQUES, SUPPORT DE CHOIX POUR TRANSMETTRE DES INFORMATIONS Matériel : Un GBF Un haut-parleur Un microphone avec adaptateur fiche banane Une DEL Une résistance

Plus en détail

Chapitre 01 Généralités

Chapitre 01 Généralités Chapitre 01 Généralités I- Introduction II- Windows Server 2008 R2 1. Historique 2. Caractéristiques 3. Les différentes éditions 4. Outils d administration 4.1. Gestionnaire de serveur 4.2. Utilisateurs

Plus en détail

À qui s adresse cet ouvrage?

À qui s adresse cet ouvrage? Introduction Bienvenue dans le Guide de l administrateur de Microsoft Windows Server 2008. En tant qu auteur de plus de 65 livres, j écris des ouvrages professionnels sur la technologie depuis 1994. Au

Plus en détail

Pourquoi construire son PC?

Pourquoi construire son PC? Chapitre 1 Pourquoi construire son PC? De nombreuses marques proposent des ordinateurs tout faits, du très puissant au bon marché. Dès lors, pourquoi chercher à savoir ce qu il y a dans un ordinateur,

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Manuel d'utilisation de la maquette

Manuel d'utilisation de la maquette Manuel d'utilisation de la maquette PANNEAU SOLAIRE AUTO-PILOTE Enseignement au lycée Article Code Panneau solaire auto-piloté 14740 Document non contractuel L'énergie solaire L'énergie solaire est l'énergie

Plus en détail

I. Introduction aux fonctions : les fonctions standards

I. Introduction aux fonctions : les fonctions standards Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons

Plus en détail

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est: Travaux Pratiques 3. IFT 1002/IFT 1005. Structure Interne des Ordinateurs. Département d'informatique et de génie logiciel. Université Laval. Hiver 2012. Prof : Bui Minh Duc. Tous les exercices sont indépendants.

Plus en détail

RACHETER OU REMBOURSER UN CREDIT

RACHETER OU REMBOURSER UN CREDIT RACHETER OU REMBOURSER UN CREDIT Faites le bon choix et appréciez le bonheur d une vie sans dette C est plus simple qu il n y parait Avertissement : Toute reproduction, intégrale ou partielle, ou toute

Plus en détail

Cours 3 : L'ordinateur

Cours 3 : L'ordinateur Cours 3 : L'ordinateur Abdelkrim Zehioua 2éme année Licence Gestion Faculté des sciences Économiques et sciences de Gestion Université A, Mehri - Constantine 2 Plan du cours 1.Définitions de l'ordinateur

Plus en détail

Eteindre. les. lumières MATH EN JEAN 2013-2014. Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Eteindre. les. lumières MATH EN JEAN 2013-2014. Mme BACHOC. Elèves de seconde, première et terminale scientifiques : MTH EN JEN 2013-2014 Elèves de seconde, première et terminale scientifiques : Lycée Michel Montaigne : HERITEL ôme T S POLLOZE Hélène 1 S SOK Sophie 1 S Eteindre Lycée Sud Médoc : ROSIO Gauthier 2 nd PELGE

Plus en détail

Numérisation du signal

Numérisation du signal Chapitre 12 Sciences Physiques - BTS Numérisation du signal 1 Analogique - Numérique. 1.1 Définitions. Signal analogique : un signal analogique s a (t)est un signal continu dont la valeur varie en fonction

Plus en détail

Lisez ATTENTIVEMENT ce qui suit, votre avenir financier en dépend grandement...

Lisez ATTENTIVEMENT ce qui suit, votre avenir financier en dépend grandement... Bonjour, Maintenant que vous avez compris que le principe d'unkube était de pouvoir vous créer le réseau virtuel le plus gros possible avant que la phase d'incubation ne soit terminée, voyons COMMENT ce

Plus en détail

Activité 1. Compter les points Écriture binaire des nombres. Résumé. Liens pédagogiques. Compétences. Âge. Matériel

Activité 1. Compter les points Écriture binaire des nombres. Résumé. Liens pédagogiques. Compétences. Âge. Matériel Activité 1 Compter les points Écriture binaire des nombres Résumé Les données de l ordinateur sont stockées et transmises sous la forme d une série de 0 et de 1. Comment peut-on représenter des mots et

Plus en détail

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée

Plus en détail

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)

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) 1/ Généralités : Un ordinateur est un ensemble non exhaustif d éléments qui sert à traiter des informations (documents de bureautique, méls, sons, vidéos, programmes ) sous forme numérique. Il est en général

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de

Plus en détail

GÉANT INTERACTIF TACTILE. Les produits tactiles ProxiLed permettent un échange permanent d informations entre un groupe d utilisateurs.

GÉANT INTERACTIF TACTILE. Les produits tactiles ProxiLed permettent un échange permanent d informations entre un groupe d utilisateurs. ProxiLed est la marque référence développée par MarketCom, elle réprésente une gamme de produits de dernière génération spécialisée dans l affichage dynamique et tactile. GÉANT INTERACTIF TACTILE Notre

Plus en détail

Qu est-ce que le «cloud computing»?

Qu est-ce que le «cloud computing»? Qu est-ce que le «cloud computing»? Par Morand Studer eleven Octobre 2011 Qu est-ce que le «cloud computing»? - Morand Studer eleven Octobre 2011 www.eleven.fr 1 Aujourd hui, la démocratisation de l informatique

Plus en détail

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

Plus en détail

Comment optimiser dans ImageReady?

Comment optimiser dans ImageReady? L optimisation des éléments graphiques et la création de la page Web 243 Comment optimiser dans ImageReady? Avec ImageReady, l optimisation d un fichier pour le Web est plus performante qu avec Photoshop.

Plus en détail

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

TP Blender n 2 : Importation d un modèle SketchUp et animation TP Blender n 2 : Importation d un modèle SketchUp et animation Service de Conception Géométrique Université de Liège Aérospatiale et Mécanique Conçu avec Blender 2.66 et SketchUp 8 De SketchUp à Blender

Plus en détail

Etude comparative de différents motifs utilisés pour le lancé de rayon

Etude comparative de différents motifs utilisés pour le lancé de rayon Etude comparative de différents motifs utilisés pour le lancé de rayon Alexandre Bonhomme Université de Montréal 1 Introduction Au cours des dernières années les processeurs ont vu leurs capacités de calcul

Plus en détail

Systèmes et traitement parallèles

Systèmes et traitement parallèles Systèmes et traitement parallèles Mohsine Eleuldj Département Génie Informatique, EMI eleuldj@emi.ac.ma 1 Système et traitement parallèle Objectif Etude des architectures parallèles Programmation des applications

Plus en détail

TP SIN Traitement d image

TP SIN Traitement d image TP SIN Traitement d image Pré requis (l élève doit savoir): - Utiliser un ordinateur Objectif terminale : L élève doit être capable de reconnaître un format d image et d expliquer les différents types

Plus en détail

Pop-Art façon Roy Liechtenstein

Pop-Art façon Roy Liechtenstein 1 sur 6 22/01/2010 22:35 Pop-Art façon Roy Liechtenstein Ce tutoriel peut paraître loin de la photographie, mais il contient des techniques très utiles, voire indispensables en matière de retouche. 1 -

Plus en détail

Structure et fonctionnement d'un ordinateur : hardware

Structure et fonctionnement d'un ordinateur : hardware Structure et fonctionnement d'un ordinateur : hardware Introduction : De nos jours, l'ordinateur est considéré comme un outil indispensable à la profession de BDA, aussi bien dans les domaines de la recherche

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

Rendu HDR et illumination par image

Rendu HDR et illumination par image ENSICAEN 6, bd maréchal Juin F-14050 Caen cedex 4 Spécialité Informatique - 2e année Rapport de projet Rendu HDR et illumination par image Adrien Calendron Alexis Legrand Stéphane Saffré Suivi Ensicaen

Plus en détail

Écrit par Riphur Riphur.net

Écrit par Riphur Riphur.net Écrit par Riphur Riphur.net Vous avez plusieurs machines et vous utilisez 3DSMax, alors pourquoi ne pas les mettre en réseau pour accélérer votre temps de rendu? Pour transformer votre bureau en sona à

Plus en détail

Qu est ce qu une bibliothèque?

Qu est ce qu une bibliothèque? Qu est ce qu une bibliothèque? Les bibliothèques sont les endroits où vous allez pour gérer vos documents, votre musique, vos images et vos autres fichiers. Vous pouvez parcourir vos fichiers de la même

Plus en détail

Une bibliothèque de templates pour CUDA

Une bibliothèque de templates pour CUDA Une bibliothèque de templates pour CUDA Sylvain Collange, Marc Daumas et David Defour Montpellier, 16 octobre 2008 Types de parallèlisme de données Données indépendantes n threads pour n jeux de données

Plus en détail

V- Manipulations de nombres en binaire

V- Manipulations de nombres en binaire 1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,

Plus en détail

Tout savoir sur le matériel informatique

Tout savoir sur le matériel informatique Tout savoir sur le matériel informatique Thème de l exposé : Les Processeurs Date : 05 Novembre 2010 Orateurs : Hugo VIAL-JAIME Jérémy RAMBAUD Sommaire : 1. Introduction... 3 2. Historique... 4 3. Relation

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

WHITE PAPER. Quels avantages la déduplication offre-t-elle aux entreprises? Livre blanc Acronis

WHITE PAPER. Quels avantages la déduplication offre-t-elle aux entreprises? Livre blanc Acronis Quels avantages la déduplication offre-t-elle aux entreprises? Livre blanc Acronis Copyright Acronis, Inc. 2000 2009 Table des matières Résumé... 3 Qu est-ce que la déduplication?... 4 Déduplication au

Plus en détail

Migration NT4 vers Windows 2003 Server

Migration NT4 vers Windows 2003 Server Migration NT4 vers Windows 2003 Server Networking Intelligence Agency 07 janvier 2007-1 - 1. INTRODUCTION...- 3-2. DEFINITION...- 4-2.1. ANALYSE DE L EXISTANT... - 4-2.2. OBJECTIFS DE LA MIGRATION... -

Plus en détail

Encryptions, compression et partitionnement des données

Encryptions, compression et partitionnement des données Encryptions, compression et partitionnement des données Version 1.0 Grégory CASANOVA 2 Compression, encryption et partitionnement des données Sommaire 1 Introduction... 3 2 Encryption transparente des

Plus en détail

NOTICE D UTILISATION ET D INSTALLATION. de la CARTE MONITORING DE RELAIS «IO-MONITOR»

NOTICE D UTILISATION ET D INSTALLATION. de la CARTE MONITORING DE RELAIS «IO-MONITOR» NOTICE D UTILISATION ET D INSTALLATION de la CARTE MONITORING DE RELAIS «IO-MONITOR» Z.A.C. de la Plaine 1 rue Brindejonc des moulinais B.P. 45804 31505 TOULOUSE CX 5 Tél. : 05.61.36.03.03 Fax : 05.61.36.03.00

Plus en détail

Dossier table tactile - 11/04/2010

Dossier table tactile - 11/04/2010 Dossier table tactile - 11/04/2010 Intro Je vais brièvement exposer dans ce document: Ce que j'ai fait, comment je l'ai fait, combien ça m'a couté, et combien de temps j'ai mis à fabriquer, dans le cadre

Plus en détail

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx COURS DE PERFECTIONNEMENT cvbnmqwertyuiopasdfghjklzxcvbnmq L ordinateur et Windows 2014-2015 wertyuiopasdfghjklzxcvbnmqwertyui

Plus en détail

Projet Matlab : un logiciel de cryptage

Projet Matlab : un logiciel de cryptage Projet Matlab : un logiciel de cryptage La stéganographie (du grec steganos : couvert et graphein : écriture) consiste à dissimuler une information au sein d'une autre à caractère anodin, de sorte que

Plus en détail

Ce tutoriel, créé sans prétention artistique, à pour but de mettre en avant l une des nombreuses possibilités qu offre ce logiciel.

Ce tutoriel, créé sans prétention artistique, à pour but de mettre en avant l une des nombreuses possibilités qu offre ce logiciel. Ce tutoriel, créé sans prétention artistique, à pour but de mettre en avant l une des nombreuses possibilités qu offre ce logiciel. Prélude (pour ceux qui ne connaissent pas ou peux art rage) : Il serait

Plus en détail

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

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 6.4. Les Ombres Raytracées (Raytraced Shadows) Mode : tous les modes Panneau : contexte Shading / sous-contexte Lamp > Shadow and Spot Raccourci : F5. Les ombres raytracées produisent des ombres très précises

Plus en détail

Adobe Photoshop. Bonnes pratiques pour une utilisation professionelle CHAPITRE 7

Adobe Photoshop. Bonnes pratiques pour une utilisation professionelle CHAPITRE 7 M2 Caweb 2014-2015 Enseignant : Boris Epp Adobe Photoshop Bonnes pratiques pour une utilisation professionelle CHAPITRE 7 Sommaire 1. Les scripts a. Qu est-ce qu un script? b. La fenêtre script c. Créer

Plus en détail

Chapitre 4 : Les mémoires

Chapitre 4 : Les mémoires 1. Introduction: Chapitre 4 : Les mémoires Nous savons que dans un ordinateur toutes les informations : valeur numérique, instruction, adresse, symbole (chiffre, lettre,... etc.) sont manipulées sous une

Plus en détail

Modélisation de la vision humaine

Modélisation de la vision humaine Université Montpellier II UFR Sciences 2007 / 2008 FMIN 200 - TER Modélisation de la vision humaine MARIE Sylvain NANARD Marc Encadrants Auteurs CLERC Mickaël DELFOUR Jonathan JULIA Matthieu POTHIN Olivier

Plus en détail

Éléments d'architecture des ordinateurs

Éléments d'architecture des ordinateurs Chapitre 1 Éléments d'architecture des ordinateurs Machines take me by surprise with great frequency. Alan Turing 1.1 Le Hardware Avant d'attaquer la programmation, il est bon d'avoir quelques connaissances

Plus en détail

Introduction à l algorithmique et à la programmation (Info 2)

Introduction à l algorithmique et à la programmation (Info 2) Introduction à l algorithmique et à la programmation (Info 2) Premier cours: présentation du module, codage et définition de l algorithmique Matthieu Puigt IUT du Littoral Côte d Opale DUT Génie Industriel

Plus en détail

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

Traitement numérique de l'image. Raphaël Isdant - 2009 Traitement numérique de l'image 1/ L'IMAGE NUMÉRIQUE : COMPOSITION ET CARACTÉRISTIQUES 1.1 - Le pixel: Une image numérique est constituée d'un ensemble de points appelés pixels (abréviation de PICture

Plus en détail

Un ordinateur, c est quoi?

Un ordinateur, c est quoi? B-A.BA Un ordinateur, c est quoi? Un ordinateur, c est quoi? Un ordinateur est une machine dotée d'une unité de traitement lui permettant d'exécuter des programmes enregistrés. C'est un ensemble de circuits

Plus en détail

GPGPU. Cours de MII 2

GPGPU. Cours de MII 2 GPGPU Cours de MII 2 1 GPGPU Objectif du cours : Comprendre les architectures GPU Comprendre la programmation parallèle sur GPU Maîtriser la programmation Cuda Contenu : 1 ou 2 cours magistraux 2 ou 3

Plus en détail

Cours Bases de données

Cours Bases de données Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles

Plus en détail

Sommaire : Pourquoi créer un site web? Qu est-ce qu un site Web? Les différents types de sites. Quelles solutions peuvent être employées?

Sommaire : Pourquoi créer un site web? Qu est-ce qu un site Web? Les différents types de sites. Quelles solutions peuvent être employées? Sommaire : Pourquoi créer un site web? Qu est-ce qu un site Web? Les différents types de sites Quelles solutions peuvent être employées? Présentation d une des solutions Conclusion Aujourd hui le web est

Plus en détail

Virtual Universe aperçu numéro 1

Virtual Universe aperçu numéro 1 Virtual Universe aperçu numéro 1 Cet aperçu va vous permettre d observer quelques aspects et fonctionnalités du futur produit Virtual Universe. Cet aperçu est encapsulé dans un exécutable généré par AUTOMGEN8.

Plus en détail

Formats d images. 1 Introduction

Formats d images. 1 Introduction Formats d images 1 Introduction Lorsque nous utilisons un ordinateur ou un smartphone l écran constitue un élément principal de l interaction avec la machine. Les images sont donc au cœur de l utilisation

Plus en détail

Chapitre 1 I:\ Soyez courageux!

Chapitre 1 I:\ Soyez courageux! Chapitre 1 I:\ Soyez courageux! Pour ne rien vous cacher, le langage d'assembleur (souvent désigné sous le terme "Assembleur", bien que ce soit un abus de langage, puisque "Assembleur" désigne le logiciel

Plus en détail

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

Outil d aide au choix Serveurs Lot 4 Marché Groupement de Recherche Outil d aide au choix Serveurs Lot 4 Marché Groupement de Recherche Serveurs DELL PowerEdge Tour Rack standard R310 T110II Rack de calcul Lames R815 M610 R410 R910 M620 R415 R510 T620 R620 R720/R720xd

Plus en détail

Partie publique / Partie privée. Site statique site dynamique. Base de données.

Partie publique / Partie privée. Site statique site dynamique. Base de données. Partie publique / Partie privée. Partie publique - Front office / Partie privée - Back office. Utiliser l analogie avec une émission de télévision. Un journal télévisé = 1 journaliste + des reportages.

Plus en détail

Sauvegarde et protection des documents

Sauvegarde et protection des documents Sauvegarde et protection des documents 16 avril 2013 p 1 Sauvegarde et protection des documents Sauvegarder un document consiste à en conserver une copie, pour le mettre à l abri ou pour y revenir ultérieurement.

Plus en détail