| | LevelDesign | |
| | Auteur | Message |
---|
HR The Grand GrandMaster
Posts : 6280 Age : 44
| Sujet: LevelDesign Jeu 22 Juin - 23:44 | |
| Bon ce document aborde de façon assez directe et vaste, le level design, à savoir, la création de niveaux, de levels, de maps, dans un jeu vidéo. On abordera parfois d'autre aspects, mais toujours dans une optique liée au level design. Ce document est un extrait d'un ouvrage plus vaste que j'écrivais autrefois, je n'ai plus le temps de m'y consacrer, cependant, il est possible que certaine infos soient peu claire ou que je fasse référence à des éléments qui vont sont inconnus, auquel cas, n'hésitez pas à poser des questions. Je parlerais de la préproduction d'une map ou du developpement d'un mod/jeu dans mon prochain topic, à vous de décider. Chartres par QKennyQ Toute première approche du mappingI) Introduction au mappingCe tutorial est prévu pour toutes les personnes n’ayant jamais pratiqué de mapping*. Il peut servir de première approche pour ceux désirant débuter le mapping, ou juste à titre d’information pour les autres. Tout d’abord, il faut savoir que les levels designers (que nous appellerons ici mappeurs), sont, tout comme les modeleurs et les graphistes, sont beaucoup plus des artistes que des joueurs, le mapping est un domaine qui nécessite du temps, de l’application et beaucoup de patience. Créer une map demande, selon le niveau du mappeur et la map qu’il désire, plusieurs mois (2 à 3 mois) à compter de environ 3 heures de mapping par jour. Le mapping, c’est créer des maps. On considère dans l’ensemble map, tout les mondes en 3D/2D dans lequel évolue un joueur. Dans ce tutorial, nous considérerons uniquement les maps de Quake – Like*. Dans ses maps, le mappeur peut inclure ce qu’il désire : des sons, des models*, des textures, des shaders*… Il n’y a de définition parfaite pour une map, chacun ayant ses goûts il devient très difficile de classer ses dernières en dehors de classement par groupes. ___________________________ Mapping :Level Designing Quake – Like :Jeu possédant un moteur au principe similaire de celui de Quake Models : objet en 3D d’une précision généralement supérieure à ce que l’on peut créer avec un logiciel de mapping Shader : ensemble de propriétés qui définissent comment sera traitée une surface ou un contenu par un moteur 3D. II) Les principes d'une mapUne map est formée de 2 éléments principaux : les brushes et les entités. - Les brushes : Une map est constituée de volumes solides convexes, ce sont des brushes, ces volumes sont formés de faces planes délimitées par des segments eux-mêmes délimités par des points formants les vertices du volume. Ces volumes sont utilisés pour former l’architecture basique de la map (sols, murs, plafonds…), ils sont indispensables au bon fonctionnement d’une map, ils peuvent également servir à mettre au point des décors ou différents éléments de la map. - Les entités L’ensemble entités contient tous les éléments d’une map, chaque entité possède un jeu de propriétés qui définissent les particularités de l’élément. La map est elle-même contenue dans une entité nommée le Worldspawn. Mais le terme entité est plus couramment utilisé pour définir certains éléments abstraits de la map, comme une source lumineuse, une source sonore, les points d’apparitions ou de téléportation… A un niveau plus approfondi, un nouvel élément vient s’ajouter aux deux précédents, l’élément Curve aussi appelé le Patch de Béziers : Un Patch est, comme un brush, un volume convexe, sauf que ses faces ne sont pas forcément planes. Un patch est une matrice bidimensionnelle de points, selon les valeurs de cette matrice, l’allure du patch change. Comme expliqué précédemment, les Patch et les brushes sont formés à partir de plans délimités par des segments délimités par des points. Ces plans sont appelés les faces, sur chaque face il est possible d’appliquer une texture indépendante des autres faces, ceci, à fin de donner à cette face du brush (ou du Patch) l’allure que l’on désir de lui (mur en pierre, plaque en métal…). Chaque face, en fonction de la texture qu’on lui applique, peut avoir des propriétés particulières (lumière, écran, brillance, reflet…), ces propriétés sont appelées des propriétés de surfaces et sont inscrites dans un fichier *.shader. Ce même fichier peut aussi avoir des propriétés de contenu qui changeront alors l’intérieur du brush (ou Patch) ce qui permet de créer des effets tel que l’eau, la lave, le brouillard…. En modifiant le jeu de propriété d’un brush, on peut transformer ce dernier en porte : il suffit d’écrire dans les propriétés entité du brush que l’on veut que lorsqu’un joueur s’approche d’un certain distance d’un brush celui se déplace dans une direction pré définie en émettant un son, lui aussi pré défini. (La création d’une porte et en fait encore plus simple, mais ici, elle aura été détaillée). Ainsi, en agençant avec précisions des brushes, des Patch, des textures, des shaders, des entités de diverses natures, on peut obtenir des maps à la qualité parfois étonnante. Lloydmdm2 par Lloyd Morris III) Les principes approfondis d'une mapMaintenant que nous connaissons les différents éléments d’un map nous allons pouvoir nous pencher sur l’utilisation de ces derniers. -A L’utilisation des brushes Nous savons qu’un brush est un volume convexe solide possédant au minimum 4 faces (il est toujours fermé), en agençant correctement 6 brushes on peut obtenir une salle : 1 plafond + 4 murs + 1 sol = 6 brushes. Avec ces même 6 brushes il aurait été possible de fabriquer une chaise : 4 pieds + 1 dossier + 1 siége = 6 brushes On aurait également pu mettre au point un escalier à 6 marches : Bien sur ces éléments sont très basiques car constitué de peu de brushes. En augmentant leur nombre, il est possible d’avoir des salles ou des objets très au point. Par exemple avec 25 brushes il est possible de créer une chaise déjà plus évoluée : -B L’utilisation des Patch de Béziers Nous avons vu qu’à la similitude d’un brush, un Patch possède plusieurs faces et une texture par face. Mais nous savons également que une ou plusieurs face d’un Patch peuvent être non planes, c'est-à-dire, que leur surface peut être arrondie ou déformée. Sur l’image suivante, FB est une courbe, FBCE un patch de Béziers et enfin ABFECD un ensemble de Patches de Béziers : -C Les lumières Une fois que la map est formée (à partir de brushes et de Patch), le mapper dispose des sources de lumières dans la map (appelé Point Light) il définit leur couleur et leur intensité. Ainsi, durant le jeu, des ombres se formeront à partir des lumières et des différents éléments de la map : les textures seront plus claires (ou plus proche de la couleur de la source)là ou la lumière sera plus proche, et plus sombre, voir noir là ou il y aura moins de lumières.
Dernière édition par le Jeu 22 Juin - 23:51, édité 1 fois | |
| | | HR The Grand GrandMaster
Posts : 6280 Age : 44
| Sujet: Re: LevelDesign Jeu 22 Juin - 23:45 | |
| Notions théoriques d'une mapI) Géométrie d'une mapComme expliqué précédemment, les différents éléments d’une map sont formés de points, un point A est mémorisé avec son jeu de coordonnées X, Y et Z. (3 valeurs car 3 dimensions). Dans le repère suivant d’axes X, Y et Z, nous repérons le point A de coordonnées (x ; y ; z) Maintenant, si dans ce même repère nous incluons un deuxième point : le point B, de coordonnées (x2 ; y2 ; z2), il est alors possible de tracer une droite qui passe par ces deux points : A présent, si nous rajoutons un troisième point (C), de coordonnées (x3 ; y3 ; z3), et que nous traçons deux droites supplémentaires (une qui passe par A et C, et l’autre par C et B), nous obtenons un plan en 2dimensions (il n’a pas d’épaisseur) ce plan a des dimensions infinie et passe par les droites d, d2 et d3: Tout comme une seule droite peut passer par 2 points, 1 seul plan peut passer par trois points. Trois points est le nombre minimal de points requis pour définir un plan. Si nous remplaçons les droites d, d2 et d3 par des segments ou ligne (c'est-à-dire que leurs dimensions ne seront plus infinies, mais au contraire, délimitée par les points A, B et C), le plan devient alors une aire, une aire est une partie d’un plan délimitée par des lignes. Un polygone est une aire délimitée par 3 lignes ou plus, sur le dessin suivant, ABC est un polygone délimité par les lignes AB, AC et BC : Ajoutons à présent un point D, puis traçons les lignes AD, BD, CD, on obtient alors 2 nouvelles aires BCD, CAD et ABD, qui s’ajoutent à ABC. Ces 4 aires partagent les mêmes points et lignes, nous obtenons donc un volume, définit par les 4 aires citées précédemment. (Ces 4 aires sont originellement des plans, les plans se coupant entre eux formes des aires, lorsque 4 plans se coupent en entre eux, on obtient un volume). Tous les volumes créés de cette façon sont appelés des brushes. Exemple de mémorisation des coordonnées d’un volume : { ( -1110 -2902 219 ) ( -1110 -2902 214 ) ( -1115 -2909 214 ) ( -1077 -2784 219 ) ( -1077 -2810 219 ) ( -1291 -2810 219 ) ( -1115 -2803 218 ) ( -1115 -2909 218 ) ( -1110 -2902 214 ) ( -1110 -2810 219 ) ( -1110 -2810 214 ) ( -1110 -2902 214 ) ( -1115 -2909 218 ) ( -1115 -2803 218 ) ( -1115 -2803 219 ) ( -1110 -2810 214 ) ( -1110 -2810 219 ) ( -1115 -2803 219 ) }
Radial et Axial Un plan radial est un plan confondu avec l’un des axes (X ; Y ; Z) du repère. Un plan est confondu à un axe lorsque tout les points de ce plan possède une valeur X, Y ou Z nulle. Un plan axial est un plan perpendiculaire à l’un des axes (X ; Y ; Z) du repère. Un plan est perpendiculaire à un axe lorsque l’on peut tracer un angle droit entre cet axe et les droites du plan qui coupent cet axe. Vertex, Vertices et Polygones Un vertex est un point, il est mémorisé comme tel (voir début du chapitre). Un vertex est un sommet (croisement de plusieurs lignes). Un carré est un polygone formé de 4 vertices (vertices étant le pluriel de vertex).Un cube est un volume formé de 8 vertices. Plusieurs polygones agencés linéairement forment une bande : Plusieurs polygones agencés non linéairement (chaque polygone partageant ses vertices avec le polygone adjacent) forment un éventail : Toutes les faces de tout les brushes sont décomposés comme tel : avec des bandes de polygones. II) Propriétés des Brushes et de ses facesLes faces d’un brush possèdent des propriétés qui varient selon l’usage que l’on veut en faire. Ces propriétés sont stockées dans un ficher *.shader. Elles affectent également le brush auquel appartient la face. Ces différentes propriétés sont classées en deux parties : Propriétés de surface : Ce sont les propriétés qui affectent la surface : brillante, mouvante, lumière clignotante, écran… voir le shader manual pour la liste de toutes les propriétés de surface. Propriétés de contenu : Ces propriétés n’affectent que le contenu du brush auquel appartient la texture : solide, eau, brouillard, laisse passer la lumière, bloque seulement le joueur… Ces ensembles de propriétés sont appelés des Shaders, un shader est un ensemble de propriétés qui définissent comment une surface ou un contenu sera traité par un le compileur et le moteur 3D. Le shader est un langage qui varie avec les moteurs, il est donc difficile de l’enseigner ou d’écrire un tutorial général au shader. Mais nous y reviendrons plus tard. III) Les patches de BéziersUn Patch de Bézier, (ou Curve) est une surface dont la forme est définie par un ensemble de paramètres pour qu’elle puisse changer selon les valeurs de cet ensemble. Un Patch est mémorisé en une matrice bidimensionnelle de points. C’est un tableau constitué de jeux de valeurs, chaque point est mémorisé comme 2 jeux de valeurs, un jeu comprend les coordonnées (x ; y ;z) situant ce point dans l’espace, le second comprend les coordonnées (u ; v) qui situent ce point sur l’aire du shader. Exemple de matrice : { patchDef2 { reaptxt/notext ( 3 3 0 0 0 ) ( ( ( -488 -3392 220 0 0.750000 ) ( -500 -3392 220 0 0.375000 ) ( -512 -3392 220 0 0 ) ) ( ( -488.029449 -3440.029541 220 1.500923 0.750000 ) ( -500 -3452 220 1.500923 0.375000 ) ( -512 -3464 220 1.500923 0 ) ) ( ( -366 -3440 220 5.314344 0.750000 ) ( -366 -3452 220 5.314344 0.375000 ) ( -366 -3464 220 5.314344 0 ) ) ) } } IV) Les EntitésTous les éléments d’une map sont appelés des entités, elles sont numérotées de 0 à n. Elles peuvent être des brushes ou des patch mais elles peuvent également en contenir. Toutes les entités appartiennent à la WorldSpawn entity, l’entité numéro 0. Le WorldSpawn est le corps d’origine (0 ;0 ;0) qui contient et qui définit la position de toutes les entités. Chaque entité a son jeu de propriétés, ces propriétés sont des clés prédéfinies auxquels s’associent des valeurs. Ces valeurs définissent comment sera traité l’entité par le compileur ou le moteur 3D. V) Les MapObjectsLes mapobjects sont des combinaisons de polygones agencés en bandes. Chaques bandes a son shader et un jeu de texture propre. Toutes ces données sont stockées dans un fichier mymapobject.md3 L’ensemble MapObjects rassemble principalement tous les éléments de décors que le mappeur utilise : statues, crânes, télé porteurs… Les items et les personnages fonctionnent exactement de la même façon que les MapObjects (bandes de polygones, shader, jeu de texture et format *.md3) mais étant rarement modifiés par le mappeur et surtout, n’étant pas des éléments de décorations il sont différenciés de l’ensemble MapObjects : Il sont alors appelés Items et Models. VI) Les ShadersUn shader est un ensemble de propriétés qui définissent comment sera traitée une surface ou/et un contenu par le compileur puis, par le moteur 3D. Chaque surface possède un ensemble de propriétés par défaut à moins qu’un ensemble externe ne soit spécifié. Ces ensembles sont contenus dans un fichier myshader.shader. Ex de shader (Quake3) : Textures/liquids/lava-example //Nom du Shader { deformVertexes wave sin 0 3 0 0.1 //Mot Clé général Q3map_tessSize 64 //Mot Clé de Q3map2 Surfaceparm lava //Paramètre de surface Q3map2 Qer_editorimage textures/common/lava.tga //Texture à appliquer dans l’editeur { map textures/common/lava.tga //Texture à appliquer dans le jeu } }Notions théoriques d'un moteur3DI) Calcul du VIS - BSP & PVSLes zones dans lesquelles se déplace le joueur sont appelées des Leaf Nodes, ils sont déterminés à partir des brushes de la map : Certain brushes sont structurals d’autres sont details, c’est le mappeur qui définit quels brushes seront structurals et quel brushes seront details. Les brushes structurals sont ceux qui déterminent les séparations entre les Leaf Nodes de la map (les murs, les plafonds, les sols …). Les zones grises sont des brushes structurals et les zones bleues des brushes details. Les pointillés représentent la première partie du découpage des Leaf Nodes, on remarque les details brushes ne l’affectent pas. Ces pointillés sont appelés des Portals, ils serviront par la suite à déterminer quels Leaf Node doit être affiché en fonction de l’endroit ou on se trouve. Sur le schéma ci-dessous, les Leafs Nodes sont des volumes convexes extraits du découpage précédent. (Le schéma est représenté sur les axes x et y, le processus opère de la même façon sur toutes les dimensions)Si nous reprenons à présent le schéma des Portals, l’affichage des Leaf Nodes est déterminé de la manière suivante : entre chaque portal une ligne droite est tracée, si celle-ci ne passe pas par un structural brush alors le Portal A est visible du Portal B, chaque Portal obtient alors une liste complète de tout les Portal qu’il peut voir. Ainsi, si le Portal A du Leaf Node 1 peut voir le Portal B du Leaf Node 2, alors lorsque le joueur se trouvera dans le Leaf Node 1, les polygones appartenant au Leaf Node 2 seront calculés. Lorsque le joueur se trouvera dans le Leaf Node 1 (qui contient le portal A), le Leaf Node 7 sera affiché (et inversement). Par contre, lorsqu’il se trouvera dans le Leaf Node 6, le 3 ne le sera pas car il est impossible de tracer des droites entre les Portals de ces 2 Leaf Nodes sans passer au travers de un ou plusieurs Structurals brushes. Ainsi, en fonction de la position du joueur, le moteur sait quelles aires il a a calculer. Cela permet une importante économie de performance sans pour autant affecter le niveau graphique. | |
| | | HR The Grand GrandMaster
Posts : 6280 Age : 44
| Sujet: Re: LevelDesign Jeu 22 Juin - 23:48 | |
| I) Calcul d'éclairage - LightmapLe procédé d’éclairage traité dans ce chapitre est appelé le Lightmap. Une deuxième couche est appliquée sur toutes les textures de la map, cette couche est globalement identique à l’originale à la différence que la couleur de ses tuxels a changée : - Des éléments proches de la texture - De la distance des sources de lumières environnantes - Des couleurs de ces sources - De l’intensité lumineuse de ces sources Si la lumière est loin son effet sur la texture sera plus faible, si elle est bleue la texture penchera vers le bleu, si il y a une colonne entre la source et la texture, une ombre sera dessinée sur la texture. Toutes les textures d’une map sont ainsi modifiées. Texture sans Lightmap Même texture avec Lightmap Sur la première image, la texture est représentée exactement de la même façon que le graphiste l’a dessinée. Alors que sur la deuxième, une source de lumière placée derrière un pylône ont été placées en bas à gauche (en dehors de l’image) la source éclaire donc une partie de la texture mais est trop loin pour éclairer l’autre côté, de plus, le pylône, placé entre la texture et la source de lumière, génère une ombre sur la surface de la texture. Pour donner cet effet, la seule opération qui a été faite a été de changer la valeur de chacun des pixels de la texture afin de donner une impression d’éclairage. Toutes les textures sont ainsi modifiées et on n’a alors l’impression d’un véritable éclairage. Pour effectuer cette modification le compileur agit de la façon suivante : Il rassemble tout les tuxels par groupe de 4 ce qui forme un luxel, puis : Etape 1 : - il trace une droite entre chaque luxel et chaque source, si cette droite doit traverser un élément solide, alors le luxel devient noir sinon il passe à l’étape 2. Etape 2 : - en fonction de la distance qu’il y a entre le luxel et des sources, il définit le coefficient d’intensité (plus la source est loin, plus le coefficient sera faible) Etape 3 : - il modifie alors la couleur des tuxels du luxel en fonction de la couleur des source et du coefficient déterminé juste avant. Etape 4 : - l’opération recommence avec un autre luxel. II) Les polygonesLe but premier du mappeur est d’obtenir le meilleur résultat graphique avec le minimum de polygones, plus il y a de polygones plus les performances seront faibles. Le nombre de point minimum requis pour déterminer un plan étant 3, toutes les cartes vidéo fonctionnent à partir de triangles (3 points) la plus part des moteurs fournissent alors directement 3 points par polygones à fin d’éviter à la carte vidéo de devoir faire une conversion (pertes de performances). Un quadrilatère simple (sans aucun autre élément rattaché à lui) sera alors découpé en 2 polygones : Sans polygones une map serait vide, se sont sur les polygones que les textures sont appliquées, se sont également les polygones qui vont, pour le moteur, être affectés par les propriétés des shaders. III) Les meshesLes meshes sont des ensembles de polygones dénudés de textures, ils forment généralement le corp des personnages ou des différents objets utilisés dans le jeu (arme, éléments du décor, trousse de soins…). Les Meshes sont généralement développé par les modélisateurs et non par les level designers eux même. Comme pour tous les polygones, il est possible d’appliquer des textures sur les Meshes voir même de bénéficier des shaders. IV) Les shaders - Q3ShadersA fin de réaliser des effets spécifiques qui ne peuvent l’être avec de simples polygones complétés de polygones. La plus part des moteurs bénéficie de leur propre langage de shaders. Celui expliqué ci-après est celui utilisé par le compileur Q3map2.5.16 ainsi que par le moteur de Q3. Bien que ce moteur devienne à présent moins utilisé et performant, son langage de shaders s’avère d’être l’un des meilleurs et des plus faciles à comprendre. Qu’est ce qu’un shader ? Un shader est un script qui définit comment sera traité une surface ou un contenu par le moteur 3D. Ces scripts sont formés de suites d’instructions qui seront utilisées par le compileur puis par le moteur 3D. Pourquoi utiliser des shaders ? Le principe simplissime du shader à un avantage fondamental : celui de pouvoir être créé, modifié et utilisé à volonté par les artistes sans que ceux-ci ne requiert une quelconque formation en programmation. A quoi ressemble un shader ? Dans le jeu, la texture qui utilisera le shader suivant aura une apparence de lave. Un shader, sous sa forme texte, est toujours présenté de la même façon : le nom du shader, suivit d’une accolade qui ouvre le shader. Lorsque toutes les instructions ont été rentrées, on ferme le shader. Ceux qui connaissent le C/C++ remarqueront les similitudes de présentations entre les deux langages. Textures/liquids/lava-example //Nom du Shader { deformVertexes wave sin 0 3 0 0.1 //Mot Clé général Q3map_tessSize 64 //Mot Clé de Q3map2 Surfaceparm lava //Paramètre de surface Q3map2 Qer_editorimage textures/common/lava.tga //Texture à appliquer dans l’editeur { map textures/common/lava.tga //Texture à appliquer dans le jeu } }Nom du shader et conventions. La première ligne, le nom du shader, est utilisé par l’éditeur, le compileur, le moteur3D ainsi que les models, pour référencer le script et fichiers artistiques associés au shader. Les shaders utilisés en tant que skin sur des models doivent renvoyer sur les images utilisées par le model. Les chemins d’accès doivent êtres écrits en minuscule et des slash «/» sont utilisés pour séparer les répertoires. Le nom du shader est directement suivit d’une accolade ouverte «{» qui désigne le début de la suite de mot clés qui forment le corps du shader, puis une accolade fermée «}» qui représente bien sur, la fin du shader. Types de mot clés. Seul le nom du shader requiert une écriture exacte du chemin d’accès (minuscules/majuscules). Les mots clés utilisés dans le corps du shader ne sont pas sensibles à la taille des caractères utilisés. Par convention, certains mot clés comporte des majuscules et minuscules. La plus parts conserveront l’écriture originale des mots clés. Certains mots clés dépendent de l’ordre dans lequel ils sont exécutés, pour se prémunir de certaines erreurs il est préférable de conserver les mots clés en groupe de styles Le premier groupe étant : Les Mots Clés Généraux du Shader : Ces mots clés contiennent l’aspect global du shader, ils sont interprétés par le compileur qui change les propriétés physiques de la surface qui utilise ce shader. Viennent alors : Les Mots Clés Spécifiques à Q3map2 : Ces mots clés sont utilisés pour changer la nature physique de la surface, ils sont aussi généraux au shader. Ensuite, Les Mots Clés Spécifiques aux Paramètres de la surface : Ces mots clés définissent les paramètres de la surface (brouillard, eau, ciel…) Puis, Les Mots Clés de l’éditeur : Ils ne sont utilisés que par l’éditeur et pour l’accommodation de l’utilisateur. Et enfin, Les Mots Clés Spécifiques par Phases : Les shaders peuvent contenir une ou plusieurs phases. Chaque phase est contenue entre deux accolades et contient le chemin d’accès à l’image source utilisé ainsi que différents Mots Clés spécifiques aux phases. Les concepts des shaders. 1- Propriétés de surface, propriétés de contenu et propriétés de déformation. Les shaders ne modifient pas uniquement l’aspect visible d’une texture sur un brush ou un patch, ils peuvent également avoir un effet sur à la fois leur contenu et leur forme. Les propriétés de surface ne font rien qui modifie la forme ou le contenu d’un élément, ils ne modifient que les valeurs RGB d’une surface. Les propriétés de contenu, elles, affectent la façon dont les éléments sont traités dans le jeu ceci pour réaliser de l’eau, du brouillard ou d’autres effets plus techniques. Enfin, les propriétés de déformation affectent, en temps réel, la forme géométrique des éléments, c’est de cette façon que seront rendues les vagues et autres animations organiques. 2- Le prix de la puissance Les shaders donnent au designer la possibilité de pouvoir modifier, améliorer et créer les effets qu’il désire intégrer et appliquer aux surfaces, dans le jeu. Mais ces possibilités peuvent coûter chères, et ce prix est mesuré en perte de performances. En effet, pour chaque phase d’un shader qui affecte l’apparence d’une texture nécessite au moteur de calculer une passe supplémentaire par phase. Ainsi, une lumière qui nécessite 2 passes, qui est vue au travers d’un brouillard qui nécessite 1 passe forcera le moteur à recalculer la scène 3 fois. 3- Les couleurs A-RVB HEY ON CONNAIT CA ! VOIR L'AUTRE TOPIC =PRVB signifie « rouge, vert, bleu », RGB en anglais. Le rouge, le vert et le bleu sont les 3 couleurs primaires de la synthèse additive, synthèse qui est réalisée en additionnant différentes quantités de ces 3 couleurs. La très grande majorité des logiciels manipulant les couleurs utilise le code RGB, chacune des trois couleurs dispose de 256 niveaux (8 bits), en additionnant ces niveaux sur un même pixel on obtient 24bits pour ce même pixel, soit plus de 16 millions de couleur différentes. Il est possible de rajouter un canal supplémentaire sur 8 bits, appelé le canal Alpha (ou Alpha Channel) on passe alors du mode RGB au mode ARGB : Alpha Red Green Blue. Ce canal Alpha est utilisé pour gérer la transparence de certaine surface. Le moteur de Quake utilise une échelle RGB qui varie de 0 à 1. il suffit de diviser les valeurs RGB par 256 pour obtenir l’équivalence pour le moteur de Q3. 4- Taille des textures Les textures sont mesurées en pixels. Généralement, des dimensions en puissance de deux sont utilisées : 16x16, 64x512, 256x256… 5- Les unités 3 unités sont utilisées : le Game Unit, le Color Unit et le Texture Unit. Le Game Unit est utilisé par les déformations pour définir les mouvements géométriques relatifs au monde. Le Color Unit, est produit à partir des Texture Units afin de rendre des effets de lumières. Le Texture Unit est la normalisation de la taille originale des textures, cette normalisation est généralement de 1.0 x 1.0 mais peut varier. | |
| | | HR The Grand GrandMaster
Posts : 6280 Age : 44
| Sujet: Re: LevelDesign Jeu 22 Juin - 23:49 | |
| V) Calcul d'éclairage - RealTime Per-Pixel Lighting
Le fonctionnement de l’éclairage temps réel est beaucoup plus complexe que celui du Lightmap, c’est pourquoi les explications fournies dans ce chapitre seront vulgarisée afin que d’être compréhensible par un novice. Pour plus de précision sur le sujet, se référer au chapitre utilisateur avancé.
Le principe d’éclairage expliqué dans ce chapitre est similaire à celui utilisé dans Doom 3 et programmé par John Carmack, cette technologie nouvelle utilise le per-pixel lighting ce qui autorise chaque pixel à posséder et à modifier ses propres valeurs ARGB, et ceci, en temps réel. Les sources de lumières peuvent alors être éteintes, obstruées, bougées, tout en affectant l’éclairage de l’environnement, le tout en temps réel bien sur. Auparavant, les lumières et les effets d’ombres qui semblaient temps réel n’étaient que « trucage », c'est-à-dire que les ombres avaient été créées à la main et leur mouvement été prédéfini, Splinter Cell est certainement l’un des jeux qui à fait la meilleure utilisation de ce type d’éclairage « truqué », il ne lui manquait plus que le per-pixel lighting pour rivaliser avec Doom 3. Le moteur de Doom 3, utilise les ombres volumétrique, aussi appelée Reversed shadows ou Stencil 8bits Shadows Volume. Cette technologie permet de créer en temps réel des volumes représentatifs des ombres, ces ombres peuvent posséder plusieurs face ceci dans le cas de plusieurs sources lumineuses, la taille des volumes peuvent bien sur changer si les sources lumineuses se déplace. On obtient alors des ombres volumétriques qui se déplacent, change de forme ou d’intensité, en fonction des sources lumineuses. Pour plus de précision sur le support des ombres volumétriques, se référer au chapitre utilisateur avancé.
VI) Calcul d'éclairage - Vertex
L’éclairage par vertex sert aujourd’hui de moins en moins pour réaliser l’éclairage général d’une map, il reste néanmoins utilisé par certains jeux dans le cadre de l’éclairage des models. Son principe est simple, au lieu d’éclairer les textures par texel ou par pixel, seul la position des vertex affectera l’éclairage de la surface, ainsi, sur un simple triangle comportant 3 vertex, si l’un des deux vertex est affecté par une lumière blanche et les deux autres par aucune lumière (valeur noire), la surface du triangle sera blanche au niveau du vertex affecté par la source blanche, et deviendra grise puis noire en progressant vers l’un des deux autres vertex.
L’éclairage par vertex possède de nombreux défauts : Plus il y a de polygones plus l’éclairage sera réaliste. Ce qui consomme beaucoup de performances. Si la surface se déplace, il n’y aura pas modification de l’éclairage. De même si les sources lumineuses sont temporairement occultées.
VII) Le son
La très grande majorité des jeux vidéo d’aujourd’hui utilise les sons de la même façon : les fichiers son (de tout formats, même si l’on tend vers ogg avec les années) sont simplement stockés dans les répertoires du jeu, puis, lors du développement, les développeurs sont amenés à assignés ces sons aux actions ou événements qu’ils désirent (tir, porte, voix, avion, son d’ambiance). Les musiques sont traitées de la même façon, même si la plus part des jeux demanderont une qualité supérieure pour cette dernière, ce n’est pas toujours le cas. Les jeux vidéo plus récents peuvent comporter plusieurs fichiers sons pour le même événement, ceci, pour les utilisateurs possédant des ensembles audio évolués. Ainsi, chaque enceinte bénéficiera de son propre fichier son.
VIII) Le moteur physique
Le rôle du moteur physique est de rendre en temps réel toutes les interactions physiques des corps ainsi que leurs conséquences. C'est-à-dire, combien de fois et comment va rebondir une balle en fonction de : sa masse, sa forme, sa vitesse, du sens dans lequel elle a été lancée… Un moteur physique est très important, car c’est également lui qui va déterminer ce qui bloque le joueur (les murs et le différents éléments de la map).
Pour ceci, le moteur physique va utiliser plusieurs éléments :
Les Geoms : Ce sont de simples formes géométriques (sphère, boite, cylindre, citerne…) que le modélisateur va utiliser est moduler pour créer un volume. Ce volume sera le corps de l’objet soumis au moteur 3D. Dans le cas d’une balle, une simple sphère suffira, pour un personnage complexe, il faudra utiliser plusieurs Geoms, les moduler et les déformer jusqu'à obtenir un Mesh à l’allure la plus proche possible du model original. Certains moteurs évolués sont capables de calculer un Geom identique à l’original, cela demande bien sur d’avantage de performances.
Les Bounding Boxes (ou Body) : Ce sont un ou plusieurs Geoms représentant un modèle du jeu, et associé à différentes propriétés physique : masse, centre de gravité… le nombre de propriétés dépend uniquement de la précision du moteur physique.
A partir des Bounding Boxes, des propriétés du moteur physique (gravitée, densité…) et des éléments de la map possédant une propriétés solide, le moteur physique calculera en permanence la position des polygones de chacun d’eux, il y aura collision lorsque que deux polygones se croiseront ou contact lorsque qu’ils seront confondus. Pour plus de précision sur les moteurs physique se référer au chapitre avancé. | |
| | | Emperor X Haut conseiller
Posts : 4691 Age : 36 Localisation : Belgique, une fois!
| Sujet: Re: LevelDesign Ven 23 Juin - 1:13 | |
| (j'ai déja lu ca qqpart ) Mais je me répète, bravo l'artiste | |
| | | HR The Grand GrandMaster
Posts : 6280 Age : 44
| Sujet: Re: LevelDesign Ven 23 Juin - 1:33 | |
| Yep, d'ailleurs interrogation dans quelques jours, tes exams sont pas prés de se terminer mon pote =) | |
| | | Asgorath Elève Avancé
Posts : 653 Age : 37 Localisation : BHC / Salle de Torture
| Sujet: Re: LevelDesign Ven 23 Juin - 12:59 | |
| Pfiouu ca a l'air complexe Super Tuto | |
| | | The fradou Maitre archiviste
Posts : 1623 Age : 36 Localisation : Il est passé par ici, il repassera par là...
| Sujet: Re: LevelDesign Mer 5 Juil - 14:21 | |
| T'es assez interessant comme mec HR | |
| | | HR The Grand GrandMaster
Posts : 6280 Age : 44
| Sujet: Re: LevelDesign Mer 5 Juil - 15:18 | |
| ha ? merci ça fait me fait plaisir =)
mais ça, ça dépend des sujets qui interressent ou non. Pour les gens qui s'en foutent du level design et des arts martiaux, je suis plutôt barbant ^^ | |
| | | Asgorath Elève Avancé
Posts : 653 Age : 37 Localisation : BHC / Salle de Torture
| Sujet: Re: LevelDesign Mer 5 Juil - 19:02 | |
| Fradou et sa drague ravageuse, gaffe HR | |
| | | SUPERMAN Apprenti
Posts : 51 Age : 32 Localisation : Dans ton Q
| Sujet: Re: LevelDesign Mer 19 Juil - 16:07 | |
| | |
| | | Contenu sponsorisé
| Sujet: Re: LevelDesign | |
| |
| | | | LevelDesign | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |