ACCUEIL ARCHIVES LIENS CONTACT BANNIERES PLAN
francais anglais
MUSIQUE - MAO
CREATION 2D/3D
INFORMATIQUE
TELECHARGEMENTS




PC-INFOGAME.COM : Making-of : Modélisation

Du papier à la 3D

La modélisation de l'environnement est intervenue bien après le codage du jeu. Il est en effet essentiel de posséder un moteur de jeu robuste et stable plutôt qu'un décor magnifique inutilisable. Un simple environnement de test a été créé pour tester la qualité du moteur.

La première étape fut de définir clairement les objectifs, c'est-à-dire de lister tous les éléments à modéliser pour avoir une idée de l'ampleur et de la faisabilité du travail. Il est impensable de se lancer sans réflexion dans 3DS Max, la majorité des objets à modéliser doit être dessiné sur papier afin de définir l'approche de modélisation. De nombreuses photographies ont été utilisées comme modèle.

La modélisation s'est faite en plusieurs temps :
  • Création de la place centrale de l'observatoire
  • Création de l'entrepôt
  • Création du télescope, du dôme et de l'observatoire
  • Modélisation de tous les objets du décor
Quelques règles ont été définies :
  • A un modèle correspond un fichier .max. Autrement dit chaque objet est modélisé dans un fichier séparé.
  • Les modèles seront exportés de 3DS Max grâce au plugin PandaExporter.
Voyons quelques photographies et plans utilisés :

Observatoire

Télescope

Banc

Fontaine




La modélisation du décor avec 3DS Max

Il n'a pas été question de modéliser des objets en haute résolution, le nombre de polygones étant d'une importance primordiale dans un jeu. Il s'agit donc d'établir un compromis entre qualité graphique et complexité du modèle. La méthode de modélisation low-polygon a été utilisée, l'objectif étant de créer des modèles avec le nombre minimal de faces pour en accélérer le rendu.

Dans 3DS Max, chaque objet a été modélisé en utilisant le mètre comme unité de référence. Ceci permet de créer des objets cohérents en terme de dimensions. Chaque modèle (entrepôt, observatoire...) était à l'origine un simple cube. En modélisation low-polygon, les mêmes outils sont fréquemment utilisés. Il s'agit notamment de : extrude, slice, bevel, chamfer, tesselate... c'est-à-dire de la majorité des commandes disponibles en mode Edit_Poly. Globalement, à partir d'une simple primitive, l'objectif consiste à dessiner dans un premier temps, les contours des murs, des portes (=un genre de plan) en utilisant principalement l'outil slice polygon. Chaque portion découpée est ensuite extrudée pour faire apparaître un volume. Quand la forme globale de l'objet est obtenue, on peut peaufiner les détails du décor.

Une fois la modélisation terminée, il faut penser très tôt à l'application des textures. Des matériaux de type "Multi/Sub-Object" ont été créés et appliqués au modèle. Il est ensuite nécessaire de définir des groupes de polygones auquel on associe un identifiant de matériau (Material - Set ID). Chaque matériau doit ensuite être paramétré avec le modificateur UVW Map.

Quelques exemples de modélisation :

Entrepôt

Observatoire




La modélisation des objets avec 3DS Max

Une fois l'environnement créé il est possible de le rendre plus réaliste en ajoutant différents objets. Comme ces éléments sont destinés à être ajoutés dans le moteur physique (le joueur pourra donc intéragir avec), chaque objet doit être modélisé séparemment. Ils ne peuvent pas être inclus de manière définive dans le décor.

Chaque élément décoratif (tonneau, banc...) a été modélisé séparemment (dans un fichier .max). Comme ces objets sont destinés à être déplacés, il est primordial de définir correctement leur point de pivot. Lors de l'exportation d'un modèle, 3DS Max considère l'origine de la grille (le point de coordonnées (0, 0, 0) comme le point de pivot de l'objet. Chaque objet est donc centré sur ce point.

L'objectif, comme pour le décor, est de modéliser un maximum d'objets peu gourmands en terme de polygones.

Chaise Bureau Portes
Caisses Support Reservoir
Palette Lampe Garage




L'assemblage du niveau final et la constitution d'une base de données

Chaque élément du décor a donc été entièrement modélisé dans un fichier séparé puis exporté, il est désormais possible d'assembler le tout pour former l'environnement de jeu. Cette étape consiste en fait à positionner chaque élément dans le décor pour en récupérer ses coordonnées (=position). En utilisant la commande "File/Merge", tous les éléments sont un à un ajouté et positionné dans le décor. Ceci donne un aperçu global de l'environnement.
Pour positionner chaque objet dans un moteur graphique, il est nécessaire de posséder deux types d'informations :
  • Coordonnées : position du modèle dans l'espace (X, Y, Z)
  • Angles de rotation : orientation du modèle (X, Y, Z)
Une base de données a été prévue pour stocker ces informations qui seront utilisées lors du chargement du niveau. Seulement, comment alimenter cette base de données lorsque l'environnement comporte plusieurs centaines d'objets ? N'ayant pas de solution à disposition, j'ai codé mon propre script sous 3DS Max. Son fonctionnement est le suivant : on sélectionne l'ensemble des modèles dont on souhaite obtenir les coordonnées et le plugin génère un fichier texte avec délimiteur comportant le nom du modèle, son groupe, ses coordonnées, ses angles... Il est même possible d'exporter simultanément les objets (en positionnant automatiquement le modèle à l'origine de la grille, en supprimant toute rotation...). Le fichier généré peut donc être très facilement importé sous Access pour remplir une table.

Pour tester le script, cliquez ici :

Dans Singularity, on peut compter environ 25 portes, 115 objets physiques avec lesquels peut intéragir le joueur. Dans le jeu, le décor représente environ 45 000 polygones et les objets/entités, 15 000.


Niveau final

Niveau final




Le lightmapping avec Gile[s]

Lorsque la modélisation est terminée, il est intéressant d'apporter une touche de réalisme à l'environnement en ajoutant des effets de lumières. Cette étape de lightmapping a été réalisée avec Gile[s] pour plusieurs raisons. Avec Dark Basic Pro, il existe deux solutions pour afficher un décor avec lightmapping :
  • Charger deux modèles au format .X que l'on superpose. L'un représente le décor modélisé et l'autre est une réplique exacte avec uniquement les textures correspondant aux effets de lumières (=lightmap). Un effet de transparence doit être appliqué au second modèle. L'inconvénient est majeur puisque l'utilisation du modèle en deux exemplaires double le nombre de polygones.
  • Dark Basic Pro possède son propre format (.dbo : dark basic object) qui, lui, supporte une couche supplémentaire pour une lightmap. Autrement dit, pour un même modèle, le fichier comporte les textures originales et le lightmapping.
Gile[s] supportant l'avantageux format .dbo, le lightmapping a donc été réalisé sous ce logiciel.

L'utilisation de cet éditeur est assez aisé. Il suffit de positionner et de paramétrer différentes sources de lumières puis de lancer un rendu pour générer la lightmap. Le choix du nombre et de la résolution des lightmaps doit être un compromis entre qualité visuelle et mémoire requise. Ainsi, il faut savoir qu'il est conseillé d'utiliser deux lightmaps de résolution 512*512px plutôt qu'une seule de 1024*1024px.
Le lightmapping de l'environnement a nécessité 70 sources de lumières (40 pour l'entrepôt et 30 pour l'observatoire). Certaines retouches à la main ont été nécessaires pour corriger quelques ombres et défauts du rendu.

Entrepôt


Observatoire




Quelques shaders

Les shaders sont aujourd'hui incontournables , il ajoute des effets intéressants qui sont calculés directement au niveau du processeur de la carte graphique. Il existe deux types de shaders :
  • Pixels Shaders : ils agissent au niveau de la couleur d'un pixel. Il s'agit d'un effet visuel (cartoon shader...)
  • Vertex Shaders : ils modifient la forme du modèle en jouant sur les sommets (vertex) : eau par exemple.
Dark Shaders est un outil pratique pour utiliser très facilement des shaders dans un projet Dark Basic Pro. Singularity comporte notamment le shader Bloom qui consiste à appliquer un effet de flou lumineux sur l'environnement. L'effet de bloom est très utilisé dans les jeux actuels et notamment dans le jeu Oblivion. Voyons quelques utilisations de ce shader :


Shader : Bloom

Shader : Bloom


- COPYRIGHT 2008/2009 - ALL RIGHTS RESERVED - WEBMASTER : UDUN (GIRARD CYRIL) - DESIGN PAR : ANTYOZ