Voxel Displacement Renderer — moderniser l’esthétique 3D rétro
Motivation esthétique
- Les jeux 3D du début et du milieu des années 1990 (Doom, Quake, Duke Nukem) ont eu une influence majeure sur le plan technologique comme sur le gameplay.
- Aujourd’hui, les limites visuelles de ces jeux sont perçues comme un charme rétro.
- La géométrie des environnements était simple et très évocatrice, tandis que les textures présentaient des contours de pixels nets.
- Ce style rappelle l’abstraction stylisée du pixel art 2D.
- Il est aujourd’hui populaire dans les jeux modernes inspirés du rétro et dans les titres 3D indépendants.
Fonctionnement habituel des voxels
- Un mesh voxel est une grille tridimensionnelle dans laquelle chaque cellule en forme de cube est soit pleine, soit vide.
- Les gros voxels sont texturés, tandis que les petits voxels sont unis.
- Pour créer de grands environnements, on peut soit placer toute la géométrie dans une grille partagée, soit disposer des meshes voxels indépendants dans le même espace.
- Si l’on décide de construire un monde de jeu en voxels, il faut créer une géométrie voxel, et le rendu comme la logique de gameplay doivent fonctionner à l’échelle du voxel.
- Il est facile d’ajouter ou de supprimer de la géométrie dans un mesh voxel.
Fonctionnement habituel du displacement
- Le displacement mapping définit à quelle distance chaque pixel d’une texture doit s’étendre vers l’intérieur ou l’extérieur de la surface d’un mesh.
- Les logiciels de modélisation 3D peuvent appliquer le displacement mapping en subdivisant un mesh puis en déplaçant les nouveaux sommets.
- En graphisme temps réel, il est utilisé avec des effets de shading de surface pour produire des détails géométriques fins sans modifier la forme physique du mesh.
- Le shell mapping permet de voir le displacement le long de la silhouette d’un objet.
Ce que j’ai créé — un mélange de voxels et de displacement mapping
- J’utilise des meshes low poly classiques pour modéliser les environnements de jeux 3D anciens, puis j’applique des displacement maps pour définir des détails de surface à l’échelle du voxel.
- À partir d’un mesh triangulaire et d’informations limitées de displacement map, le renderer convertit les données géométriques à charger sur le GPU.
- Les textures sont prétraitées afin de générer les informations nécessaires au rendu.
- L’état du mesh et des textures est utilisé pour rendre une géométrie à displacement voxel.
Création des assets artistiques et des environnements
- Il faut créer deux types d’assets : des textures et des meshes.
- Chaque texture se compose d’une carte d’albédo et d’une displacement map.
- Les meshes sont des meshes triangulaires low poly classiques avec texture mapping.
- Il existe des contraintes sur la structure des meshes et sur le mapping des textures.
Avantages de cette approche
- Elle permet de créer du contenu avec un workflow familier.
- Comme les environnements sont conçus sous forme de meshes triangulaires, il n’est pas nécessaire d’écrire un moteur physique ou un contrôleur de personnage spécifique.
- La plupart des systèmes de gameplay n’ont pas besoin de se préoccuper des détails voxels.
Prochaines étapes
- Il reste beaucoup de fonctionnalités à ajouter ou à améliorer dans le renderer lui-même.
- Je cherche comment intégrer de petits objets ou des objets animés.
- Je prévois d’améliorer l’implémentation de l’éclairage.
- Je pense qu’intégrer cette technique de rendu dans un jeu est une voie réaliste.
L’avis de GN⁺
- Défi technique : combiner voxels et displacement mapping est une tâche très difficile. Cela demande beaucoup de mécanique sur mesure.
- Aspects pratiques : cette technique a de bonnes chances d’être intégrée dans des moteurs de jeu existants. Cela permettrait aux développeurs de réutiliser leurs systèmes actuels.
- Attrait esthétique : une réinterprétation moderne de l’esthétique des jeux 3D rétro peut séduire de nombreux joueurs.
- Considérations de performance : cette technique de rendu nécessite des optimisations de performance, en particulier pour le rendu en temps réel.
- Potentiel futur : cette technique pourrait s’appliquer à divers genres de jeux et être particulièrement utile aux développeurs indépendants.
Aucun commentaire pour le moment.