WiT
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

WiT

Ce qui n'est pas prescris est prohibé
 
AccueilAccueil  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -28%
Précommande : Smartphone Google Pixel 8a 5G ...
Voir le deal
389 €

 

 LevelDesign

Aller en bas 
5 participants
AuteurMessage
HR
The Grand GrandMaster
The Grand GrandMaster



Masculin Posts : 6280
Age : 44

LevelDesign Empty
MessageSujet: LevelDesign   LevelDesign EmptyJeu 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.


LevelDesign 01c82ff8c6cb062dedfbb1990fa0
Chartres par QKennyQ


Toute première approche du mapping

I) Introduction au mapping

Ce 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 map

Une 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.

LevelDesign E058ae0566a779ee17641624df3e


- 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.

LevelDesign 44743edccb46ba73723990db68c6


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.

LevelDesign 33da908a2d7bc732b25544dad6b1
Lloydmdm2 par Lloyd Morris


III) Les principes approfondis d'une map

Maintenant 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.
LevelDesign Caa5176a7ab94ec8fb01be983ad5



Avec ces même 6 brushes il aurait été possible de fabriquer une chaise :
4 pieds + 1 dossier + 1 siége = 6 brushes
LevelDesign B070b943029633214e4a02741748


On aurait également pu mettre au point un escalier à 6 marches :
LevelDesign 632b5af7940ba2e6262d2578f90d


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 :
LevelDesign D0bc9ee2a69ed9015645bf855401


-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 :

LevelDesign 663909147eaa6e0d2568a247b806

-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
Revenir en haut Aller en bas
https://witistyrannic.1fr1.net
HR
The Grand GrandMaster
The Grand GrandMaster



Masculin Posts : 6280
Age : 44

LevelDesign Empty
MessageSujet: Re: LevelDesign   LevelDesign EmptyJeu 22 Juin - 23:45

Notions théoriques d'une map
I) Géométrie d'une map

Comme 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)
LevelDesign 613e9512ce0b2f2a981267353d04


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 :
LevelDesign B28394e675f30c71f9bd9236c3f4


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:
LevelDesign C0712d754398e07ee3cfb981e52b


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 :
LevelDesign Bf926abae4c64b80d50dcc9219b0


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.
LevelDesign Afa9751fae6d6aece528b229578a


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 :
LevelDesign 7cefc299de3eaff259db50f52720


Plusieurs polygones agencés non linéairement (chaque polygone partageant ses vertices avec le polygone adjacent) forment un éventail :
LevelDesign 9abb2bf38b81e2dc3d33fa727474


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 faces

Les 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éziers

Un 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 ) )
)
}
}


LevelDesign 5ac0ba39747497b761ae2bd4fe32


IV) Les Entités

Tous 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 MapObjects

Les 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 Shaders
Un 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 moteur3D
I) Calcul du VIS - BSP & PVS

Les 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.
LevelDesign A79de930394b8fd33bcea9fc088d


Sur le schéma ci-dessous, les Leafs Nodes sont des volumes convexes extraits du découpage précédent.
LevelDesign B6b917cedb96d5f3c0cdc65a8571


(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.

LevelDesign C4909f593c8ed9dc9bdf0d426ce4


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.
Revenir en haut Aller en bas
https://witistyrannic.1fr1.net
HR
The Grand GrandMaster
The Grand GrandMaster



Masculin Posts : 6280
Age : 44

LevelDesign Empty
MessageSujet: Re: LevelDesign   LevelDesign EmptyJeu 22 Juin - 23:48

I) Calcul d'éclairage - Lightmap

Le 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
LevelDesign 53ce435a29002d4d888a43399cad
Même texture avec Lightmap
LevelDesign 4306171f6b8efcbc6ee0ac7da6fd


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 polygones

Le 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 :
LevelDesign 948746fdf77a2cd887e8991cd266


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 meshes
Les 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.
LevelDesign 13d0f094ce5d8d054ba6d9c21503


IV) Les shaders - Q3Shaders

A 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 =P

RVB 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.
Revenir en haut Aller en bas
https://witistyrannic.1fr1.net
HR
The Grand GrandMaster
The Grand GrandMaster



Masculin Posts : 6280
Age : 44

LevelDesign Empty
MessageSujet: Re: LevelDesign   LevelDesign EmptyJeu 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é.
Revenir en haut Aller en bas
https://witistyrannic.1fr1.net
Emperor X
Haut conseiller
Haut conseiller
Emperor X


Masculin Posts : 4691
Age : 36
Localisation : Belgique, une fois!

LevelDesign Empty
MessageSujet: Re: LevelDesign   LevelDesign EmptyVen 23 Juin - 1:13

(j'ai déja lu ca qqpart Wink )

Mais je me répète, bravo l'artiste Pouce
Revenir en haut Aller en bas
HR
The Grand GrandMaster
The Grand GrandMaster



Masculin Posts : 6280
Age : 44

LevelDesign Empty
MessageSujet: Re: LevelDesign   LevelDesign EmptyVen 23 Juin - 1:33

Yep, d'ailleurs interrogation dans quelques jours, tes exams sont pas prés de se terminer mon pote =)
Revenir en haut Aller en bas
https://witistyrannic.1fr1.net
Asgorath
Elève Avancé
Elève Avancé
Asgorath


Féminin Posts : 653
Age : 37
Localisation : BHC / Salle de Torture

LevelDesign Empty
MessageSujet: Re: LevelDesign   LevelDesign EmptyVen 23 Juin - 12:59

Pfiouu ca a l'air complexe What
Super Tuto Wink
Revenir en haut Aller en bas
The fradou
Maitre archiviste
Maitre archiviste
The fradou


Masculin Posts : 1623
Age : 36
Localisation : Il est passé par ici, il repassera par là...

LevelDesign Empty
MessageSujet: Re: LevelDesign   LevelDesign EmptyMer 5 Juil - 14:21

T'es assez interessant comme mec HR Smile
Revenir en haut Aller en bas
HR
The Grand GrandMaster
The Grand GrandMaster



Masculin Posts : 6280
Age : 44

LevelDesign Empty
MessageSujet: Re: LevelDesign   LevelDesign EmptyMer 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 ^^
Revenir en haut Aller en bas
https://witistyrannic.1fr1.net
Asgorath
Elève Avancé
Elève Avancé
Asgorath


Féminin Posts : 653
Age : 37
Localisation : BHC / Salle de Torture

LevelDesign Empty
MessageSujet: Re: LevelDesign   LevelDesign EmptyMer 5 Juil - 19:02

Fradou et sa drague ravageuse, gaffe HR What
Revenir en haut Aller en bas
SUPERMAN
Apprenti
Apprenti
SUPERMAN


Masculin Posts : 51
Age : 32
Localisation : Dans ton Q

LevelDesign Empty
MessageSujet: Re: LevelDesign   LevelDesign EmptyMer 19 Juil - 16:07

Shocked Shocked Shocked Shocked Shocked Shocked Shocked affraid

Ben franchement BRAVO ! Razz
Revenir en haut Aller en bas
Contenu sponsorisé





LevelDesign Empty
MessageSujet: Re: LevelDesign   LevelDesign Empty

Revenir en haut Aller en bas
 
LevelDesign
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
WiT :: Partie Publique :: Amphithéâtre-
Sauter vers: