Google+
3DVF Network :
ico_magazine
Magazine
ico_boutique
Boutique
ico_cgjobs
Portail Emploi
ico_upload
Hébergement d'image
blogs
Blogs
ico_progiss
Progiss
ico_social
Social
Login Membre :
blogs
Login
?
Join
space
space

Accueil / Magazine / Didacticiels / Les contraintes de la modélisation temps réel pour le jeu vidéo

space

Les contraintes de la modélisation temps réel pour le jeu vidéo

Publié le 12 février 2009 par lieo
space

Subdivisions spatiales

 

 



Une autre technique d’optimisation de l’affichage pour la modélisation temps réel est la subdivision d’un décor. Lorsque votre décor fait 20 000 faces et que à un instant donné le joueur ne voit qu’une partie du décor, est-il nécessaire d’envoyer au processeur graphique toutes les faces du décor ?
Non. Généralement, un décor est subdivisé pour l’affichage en plusieurs parties, soit de manière automatique dans le moteur, sans intervention artistique, soit il est conçu en pensant chaque pièce comme un élément à part, lorsque le design du décor se prête à cela.

Les différents algorithmes portent le nom de Portals / BSP (Binary Space Partioning) / Octree, PVS (Potentially visible sets) etc…
Nous laisserons au lecteur le soin de rechercher des informations sur ces algorithmes car cela dépasse le thème de notre article.
Il faut juste retenir que ce sont des méthodes pour subdiviser la scène et n’afficher que les parties du décor que le joueur voit à chaque frame. Et il est possible que l’artiste qui modélise le décor ait à tenir compte de contraintes imposées par ces algorithmes, c’est pourquoi nous les citons.


Modèle : Alfio Trabuio


Une autre contrainte concernant le mesh est que la place mémoire disponible pou les meshes sur vore plateforme cible. Tout doit rentrer en mémoire, les données : graphiques, des sons, des collisions etc… Ceci implique parfois de diminuer la richesse des meshes au détriment d’autres données !

Voyons différentes contraintes sur les vertices d’un mesh.





Contraintes sur les vertices


Il faut, de manière évidente, limiter le nombre de points utilisés par mesh et les partager le plus possible entre les différentes faces. Il est aussi nécessaire d’avoir un mesh « propre ». C’est à dire ne contenant pas de vertices isolées ou inutiles. Les vertices doivent aussi tenir compte du skinning dans leur positionnement s’il s’agit d’un mesh animable par cette technique.
Exemple : les jonctions bras-torse sont toujours problématiques pour obtenir un à skinning réaliste et nécessitent un placement minutieux/judicieux des vertices.
Attention aussi aux normales aux vertices pour l’éclairage dynamique, nous reviendrons sur ce point dans la section 7.




Contraintes sur les faces

Comme pour les vertices, il faut limiter leur nombre, éviter les double faces (faces crées avec les mêmes vertices dans un sens puis au verso dans l’autre sens).Il faut penser à bien gérer les normales aux faces et aux vertices pour l’éclairage. Car si dans le moteur de jeu, vous utilisez un éclairage dynamique, vous devez vérifier lors de la modélisation que vos faces réfléchiront bien cette lumière dynamique correctement.

Tous les moteurs 3D et les affichages actuels gèrent et préfèrent les faces strippées permettant de gagner de la mémoire et de la vitesse d’affichage. Vous devez donc essayer de partager le plus possible les vertices, les UVs, les matériaux entre 2 faces, ceci peut varier suivant l’algorithme de stripping utilisé.
De même, il est possible que vous ayez à placer des flags sur vos faces qui soient interprétables par le moteur du jeu.
Par exemple cela peut être un coefficient d’absorption de l’énergie en cas de collisions sur une face, ou d’un son spécifique joué représentant la matière appliqué à cette face…

Il est aussi possible que la modélisation soit influencée par les contraintes des matériaux et textures qui obligent dans certains cas à faire du tiling lors du mapping et à subdiviser des faces.

Modèle : Alfio Trabuio



Contraintes sur les éclairages au vertex


Souvent l’éclairage au vertex est utilisé pour rajouter du réalisme, de l’ombre, de la lumière, une teinte à un objet… Il faut donc faire attention au placement des normales à chaque vertex, puis attention au placement des faces les unes par rapport aux autres (superposition ou enchevêtrement de faces lors d’opérations booléennes par exemple).
Il est possible aussi pour avoir un éclairage au vertex satisfaisant que vous ayez à rajouter des vertices à certains endroits du mesh pour que les transitions de lumière ne soient pas trop brutales.


 

 

Contraintes sur l’export


Et enfin, une dernière contrainte pour récupérer vos meshes sous le moteur 3D.
Pour passer de votre logiciel de modeling/animation à votre moteur de jeu, il va vous falloir exporter vos mesh.

Chaque export a ses propres contraintes et chaque logiciel de modélisation aussi. Il est donc impossible de vous donner des conseils valables pour tous les logiciels et les moteurs.

Mais par exemple, il vous faudra vérifier que le pivot de l’objet se trouve bien sur la façade devant être posée au sol pour un objet étant posé au sol dans le moteur.
Le plus souvent, les problèmes sont liés aux transformations entre le repère de votre logiciel modeleur et le moteur de jeu qui n’utilisent pas forcément la même orientation pour se repérer…


 

 

Conclusion


Les nouvelles générations de consoles peuvent afficher de plus en plus de triangles texturés avec des shaders de plus en plus complexes. Toute l’industrie du jeu vidéo et plus généralement de la 3D repousse sans cesse les limites de ce qu’il est possible de faire.

Il est donc quasiment certain que dans quelques mois / années, ces contraintes ne seront plus valables et qu’il n’y ait plus de contraintes pour la modélisation sur le nombre de faces d’un mesh par exemple… A suivre…



Remerciements : Alfio Trabuio (http://alfman.free.fr), Daniel Roger (http://perso.wanadoo.fr/danielroger), Cyril Moreul (http://cmoreul.free.fr)





© Cyril Moreul / Kalisto Entertainement - GT


 

 

Glossaire :


- Modélisation temps réel : modélisation d’objets/décors dans lequel nous pourrons nous déplacer de manière interactive, dite temps réel. Exemple classique : un jeu vidéo.

- Design d’un mesh : représentation par des dessins du mesh à créer en 3D. On les utilise se donner une prévisualisation du mesh 3D. Et l’artiste qui modélise se doit de coller le plus possible à ce design.

- Mesh : représentation en 3D d’un objet (personnage, décor, …)

- Plateforme cible : Il s’agit du média sur lequel sera joué le jeu. Exemple : XBox, PC, PS2, DS, PSP etc…

- Moteur de jeu vidéo : C’est le cœur de votre jeu ! C’est le programme qui tourne sous votre plateforme cible et qui va permettre de tout traiter dans votre jeu : affichage, gestion des inputs (manettes, clavies, souris..), les sons, les collisions, la dynamique, l’intelligence artificielle, le réseau, intéractions, animations, etc…

- Surfaces de subdivisions : nous travaillons sur un modèle simple de notre mesh que nous pouvons animer et qui, lors de la phase de rendu ou sur notre demande, sera subdivisé afin d’être lissé suivant un niveau de détail que nous pouvons définir. Cela permet de ne pas travailler sur un mesh trop complexe tout en ayant, au final, un mesh avec un maillage beaucoup plus fin que notre modèle de travail.

- NURBS : Non Uniform Rational B-Splines, il s’agit d’un type de courbe reliant des points de contrôles, espacés sans contrainte précise sur la courbe et facilement éditables car la modification d’un point n’influence pas les autres points de la courbe. Ce format de courbes est bien connu et utilisé dans beaucoup de logiciels de modélisation.

- Patches : Ce sont des vertices qui au lieu d’être reliés par des droites sont reliés par des courbes polygonales. Ex : des courbes de Bézier relient des points 3D, cela forme un Patch de Bezier.

- Compositing : Action d’assembler différentes parties d’un film ou d’une image fixe à partir d’éléments graphiques : 2D, rendus 3D, filtres appliqués etc…

- Vertex (au pluriel vertices) : point de l’espace en 3D qui est utilisé pour constituer un mesh.

- Faces coplanaires : Faces ayant la normale dans la même direction. Elles sont dans le même plan 3D.

- Flag : attribut que l’on place sur un objet ou une face afin d’y rajouter des informations. Exemple : le flag « collisionnable » sur une face pourrait signifier que cette face est collisionnable dans le moteur de jeux. Les flags sont créés par les programmeurs du moteur de jeu et peuvent être placés sous un éditeur comme 3D Studio Max ou Maya.

- Export : Fait d’écrire toutes les données d’une scène 3D dans un fichier au format lisible par le moteur de jeu. Il est aussi possible de faire un lien avec le moteur de jeu et de passer directement par la mémoire sans créer un fichier (plus rare).

- Strips de triangles : Il s’agit d’une manière de partager les données entre des triangles juxtaposés, il y a des contraintes pour pouvoir réaliser un strip entre 2 triangles. Il faut, entre autres que les vertices soient partagés, les UVs aussi, le matériau etc… Bien que cela puisse varier d’un moteur à l’autre…

- LOD : level of detail, niveau de détail. Il s’agit d’avoir plusieurs niveaux de détails pour un mesh et de placer celui correspondant à la distance du mesh à la caméra courante afin de ne pas afficher un mesh loin de la caméra avec beaucoup de faces.

- Streamer : Nous streamons des données quand nous chargeons uniquement celles dont nous avons besoin au lieu de charger un package complet de données. Nous utilisons pour cela le CD/DVD/disque dur… pour lire les données dont nous avons besoin et nous effaçons les données dont nous n’avons plus besoins. Nous pouvons streamer de la musique, des données graphiques etc…

- Mapping : la phase de mapping, est celle on nous plaquons des textures sur un mesh avec des coordonnées de mapping appelées les UVs.

- Tiling : Il s’agit de répéter horizontalement et/ou verticalement une texture sur une face de manière à ce qu’elle soit affichée en plus petit mais plusieurs fois sur la même face.



A propos de l’auteur


David a travaillé 4 ans chez Kalisto Entertainment en tant que Lead Programmer outils. Il a réalisé des scripts et plugins sous les logiciels d’infographie, ceci au service des artistes et de la production.
Récemment, il a collaboré au jeu d’Ubisoft : « Tom Clancy’s Splinter Cell Pandora Tomorrow » , version online. Il est aujourd’hui le fondateur d’une société de services en informatique dont les prestations sont parmi : du consulting, de la formation et du développement logiciel pour l’infographie.
Les clients font partie des créateurs de jeux vidéo, des réalisateurs d’effets spéciaux, de films, de séries animés, des chercheurs, des architectes, des designers, des infographistes indépendants…
Ce sont tous les corps de métier susceptibles d’utiliser l’infographie !

Cette société propose, entre autres, de simplifier le flot de production de création des données graphiques 2D/3D par le biais de plugins et scripts personnalisés sous les logiciels que vous utilisez en production.

Quelques exemples de logiciels customisables : 3D Studio Max, Character Studio, Maya, XSI, Mental Ray, Renderman, Lightwave, Photoshop, Illustrator, After Effects, Combustion, Final Cut Pro, Premiere, Digital Fusion, ZBrush, NxN, PerForce …




Pour plus d’information, visitez http://www.dl3d.com  
Email : contact@dl3d.com


© Daniel Roger / Kalisto Entertainement – GT
space
space
space
space
space
A Propos | Contact | Publicité
Copyright © 2000-2014 3DVF. Tous droits réservés. | Infogérance serveur | tracker
space