Accueil » Rédactions » Les contraintes de la modélisation temps réel pour le jeu vidéo

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

Les contraintes de la modélisation temps réel pour le jeu vidéo,
par David Lanier





Cet article est le premier d’une série d’articles consacrés à la création de jeux vidéo temps réel et aux différentes contraintes sur la modélisation, le mapping, l’animation, la gestion des données graphiques…


Pour qu’une modélisation soit parfaite, il nous faudrait un mesh le plus proche possible de notre design. Pour se faire, nous serions tenté d’utiliser des surfaces de subdivisions, des NURBS / patches ou des meshes les plus lisses possible, donc contenant plusieurs centaines de milliers de faces… Eh bien, dans l’immédiat, oubliez tout cela pour le temps réel ! ?


Lorsque vous modélisez un mesh pour le temps réel, vous avez des contraintes énormes auxquelles vous devez vous plier. Il nous sera impossible de vous donner des contraintes précises car elles dépendent toutes de plusieurs paramètres comme la plateforme cible, le moteur de jeu que vous utilisez, sa version, le type de jeu que vous ferez… Il s’agira dans cet article de vous sensibiliser aux contraintes de la modélisation temps réel pour le jeu vidéo.

Modèle : Alfio Trabuio



La plateforme cible et le moteur de jeu : késako ?

 

Lorsque vous modélisez un mesh temps réel, vous devez le faire en fonction des contraintes de la plateforme cible. Ces contraintes sont très différentes si vous ciblez une PS2 et un XBox par exemple. Vous devez donc connaître les spécificités techniques de votre cible…
De plus, vos meshes vont être affichés par un moteur de jeux vidéo, là aussi chaque moteur possède ses spécificités et souvent chaque moteur préfère un mesh sous une certain forme plutôt qu’une autre… Généralement, un mesh formé par un ou plusieurs strips de triangles.

© Cyril Moreul / Kalisto Entertainement – GT



Des exemples de contraintes dus au moteur et à la plateforme cible :

 

– Le nombre de faces potentiellement affichables en même temps par le moteur est limité. De ce fait, le Lead artist et le Lead programmer (par exemple) ont défini ensemble un budget de faces qui va être affiché dans une scène et donc un budget de faces par mesh sachant qu’il y aura tant de mesh affichés en même temps dans le décor avec un nombre de personnages etc…
Vous vous retrouvez donc en situation de créer un mesh le plus proche possible des designs fournis, avec un nombre de faces limités. C’est là où nous voyons les personnes qui ont l’habitude de modéliser en temps réel et d’économiser les vertices et les faces. Cela se voit surtout sur le mesh en fil de fer.

– Certaines plateformes cibles, comme la PS2, préfèrent afficher beaucoup de petites faces strippées plutôt que moins de faces, mais plus grandes en surface… Alors que lors de la modélisation, il n’y a que peu de différences visibles…

Par exemple, vous n’avez pas toutes ces contraintes lorsque vous réalisez des films/séries en 3D, le résultat final est le rendu, bien qu’il puisse être retouché dans un logiciel de compositing.

 

 


© Cyril Moreul / Kalisto Entertainement – GT



Contraintes sur les meshes et la scène / LOD / Subdivisions spatiales / Mémoire


Toute scène affichée à l’écran devra avoir un nombre d’image par secondes (dit FPS pour Frame Per Second) raisonnable, généralement supérieur à 15 images secondes, idéalement à 60 images /secondes.
Si vous tombez en dessous de 15 images secondes, le joueur verra que le jeu ne répond plus immédiatement à ses directives à la manette par exemple, ce qui ne permettra pas l’immersion dans le jeu.

Pour éviter ce genre de problèmes, il nous faut limiter le nombre de meshes d’une scène 3D. Précisément, limiter le nombre de triangles par frames envoyés à l’affichage. Sur PC/XBox, l’affichage est fait par votre carte 3D. Sur PS2, par exemple, c’est un mélange entre différentes composants dont le GS (Graphic Synthetiser).

C’est pour cela qu’un budget de faces / vertices doit être défini avant la modélisation.

Il y a une autre technique utilisée couramment dans la modélisation temps réel qui est le LOD (level of detail).
Il s’agit d’avoir plusieurs versions d’un même mesh qui sont des versions simplifiées de ce mesh.
Pourquoi faire cela ?

© Cyril Moreul / Kalisto Entertainement – GT

 

Lorsque votre mesh fait 5 000 faces et qu’il se trouve très loin de votre caméra, ce mesh représentera seulement quelques pixels sur votre écran, mais les 5000 triangles du mesh seront envoyés à l’affichage tout cela pour produire quelques pixels. Dans ce cas, si notre mesh n’avait fait que 100 – 200 faces, il aurait produit à peu près les mêmes pixels à l’écran, du coup nous pouvons substituer le mesh original par un mesh similaire mais simplifié.
Pour générer des LOD, il existe 2 principales techniques : les LODs statiques et dynamiques.



 

 

Les LODs statiques


Les LODs statiques sont des meshes que le modeleur a créé. Il y a le mesh original, qui est le plus complexe en nombre de faces et différents niveaux de simplifications de ce mesh qui peuvent aller de 1 à n, suivant la mémoire dont vous disposez sur votre plateforme cible pour stocker vos meshes et leurs LODs.
Ensuite à l’affichage, suivant la distance de votre mesh à la caméra courante, on utilise telle ou telle version du mesh ou d’un de ces LODs. Il est souvent aussi utilisé de l’interpolation (du morphing) entre 2 LODs afin de ne pas créer un effets d’apparition/disparition trop brutal lors du changement de niveau de détail d’un mesh.
Le LOD statique nécessite peu de calculs mais il faut créer (souvent manuellement) les différentes versions simplifiées du mesh. Et au chargement du jeu, il faut stocker en mémoire toutes les versions simplifiées des mesh ou les streamer.

 

 

 

Les LODs dynamiques


Il existe aussi des algorithmes utilisables en temps réel qui en partant d’un mesh original peuvent le simplifier automatiquement en fonction de sa distance avec la caméra courante. On les appelle les « Continuous LOD ». Ils sont bien sûr plus gourmand en temps machine car ces opérations demandent des calculs complexes mais qui ne nécessitent pas de stocker les différentes versions simplifiées du mesh.

 

 

 


© Cyril Moreul / Kalisto Entertainement – GT


Chargement....

A Lire également