Voxel
Le voxel (mot-valise, créé par analogie du mot pixel, en y contractant « volume » et « element »[1] ) est un pixel en 3D. Il consiste à stocker une information colorimétrique avec ses coordonnées spatiales, voire temporelles, de position ainsi que, facultativement, une taille relative à l'unité utilisée ou d'autres informations telles qu'une matière. Il s'inscrit plus généralement dans des espaces matriciels, bien que les espaces vectoriels lui soient favorables. On notera que ses coordonnées spatiales peuvent être polaires.
Le point faible du format (par rapport à la 3D vectorielle) est de nécessiter énormément de ressources, tant pour le stockage que pour le rendu qui ne bénéficie pas d'accélération matérielle. Cependant, des algorithmes de compression traditionnels à l'imagerie numérique ou l'informatique peuvent être employés sans difficulté.
Sommaire
1 Imagerie médicale
2 Rendu par voxel
3 Jeux vidéo utilisant tout ou parti du rendu par voxel
4 Voir aussi
5 Lien externe
6 Notes et références
Imagerie médicale |
Le voxel s'avère particulièrement adapté à la représentation de volumes à partir de plusieurs images de coupes. C'est pour cette raison qu'il est souvent utilisé en imagerie médicale 3D (scanner, IRM…) ainsi qu’en géophysique et en astrophysique où il offre un résultat rapide et suffisant.
Voir par exemple le scanner à rayons X (ou CT).
Rendu par voxel |
Le voxel est principalement utilisé pour le rendu des terrains dans les jeux vidéo (Outcast étant un de ses grands représentants) en utilisant une heightmap combinée avec un Y-Buffer. La technique consiste à afficher le terrain colonne par colonne en ne prenant en compte que les voxels dont la hauteur est supérieure au Y-Buffer, ce dernier prenant comme valeur la hauteur de la dernière colonne affichée. Les parties non visibles de la scène sont ainsi tout simplement ignorées lors du rendu, ce qui offre un fort gain de ressources[2].
Une des optimisations les plus remarquables offertes par le voxel apparaît lorsque l'on passe de l’utilisation d'une matrice de voxel à l'utilisation d'un arbre ayant comme racine chaque voxel et dont chaque nœud père est un voxel faisant la moyenne de ses fils (couleur, texture). Plusieurs optimisations apparaissent alors :
- premièrement, si un nœud contient plusieurs fils ayant toutes les mêmes caractéristiques (couleur, texture), alors il est possible de les supprimer sans perdre en détail ;
- deuxièmement, le niveau de détail peut être géré très facilement en parcourant en profondeur l'arbre et en s’arrêtant dès que la taille du voxel est inférieure à la taille d'un pixel[2].
Ces deux optimisations permettent un gain de mémoire mais surtout une vitesse d'affichage équivalent quel que soit le niveau de détail de l'objet, son gros désavantage étant son coût lors de la modification de l'arbre qui devient alors énorme là où une matrice le gérerait aisément. Le dessin par triangle reste donc le plus courant dans les moteurs 3D.
Quelques moteurs 3D utilisant un rendu par voxel :
(en) WinUFO et SimUFO. Il existe un applet Java pour tester WinUFO en ligne. SimUFO permet d'éditer directement le paysage dans le programme ;
(en) Atomontage est un moteur hybride de 3D temps réel de nouvelle génération destiné aux jeux vidéo gérant la géométrie tant en voxel qu'en vectoriel, la physique et l'éclairage.
Jeux vidéo utilisant tout ou parti du rendu par voxel |
Les jeux vidéo utilisant un moteur de rendu 3D par voxels sont peu nombreux. On peut citer :
Comanche (1992) : simulateur de vol pour hélicoptères de guerre utilisant un rendu par voxel pour dessiner le paysage ;
Outcast (1999) : jeu d'aventure utilisant un rendu par voxel pour dessiner le paysage ;
Ace of Spades (2011) : jeu de tir à la première personne utilisant un rendu par voxel pour dessiner le paysage et les personnages ;
Delta Force (1998) : jeu de tir à la première personne utilisant un rendu par voxel pour dessiner le paysage ;
Hexplore (1998) : jeu de rôle et d´action utilisant un moteur de rendu voxel pour créer les formes 3D et les décors ;
Robinson's Requiem (1994) : rendu voxel utilisé pour le rendu du sol ;
Voxelstein 3D (2008)[3] : un clone libre de Wolfenstein 3D à base de voxels ;
Shattered Steel : un rendu par voxel pour dessiner le paysage ;
Space Engineers : un rendu par voxel pour dessiner les paysages ;
Vangers : le rendu voxel a été utilisé pour le sol ;
Voxel Quest : jeu d'aventure abandonné, fondé entièrement sur un rendu voxel, passé en open source[4] à la suite de l'abandon du seul développeur.
7 Days to Die (2013) : jeu de survie dans un monde post-apocalyptique.
Voir aussi |
- Synthèse d'image 3D
- Rendu volumique direct
Lien externe |
- « Pause Process - Le voxel », sur www.jeuxvideo.com (consulté le 21 avril 2015)
Notes et références |
(en) Foley, James D., Computer Graphics: Principles and Practice, Addison-Wesley, 1er janvier 1996(ISBN 0201121107, OCLC 475787187).
Fedy Abi-Chahla, « Rendu 3D : le raycasting de voxels », sur www.tomshardware.fr, 31 août 2009(consulté le 21 avril 2015).
(en) http://voxelstein3d.sourceforge.net/.
(en) « Voxel Quest Isometric Small ».
- Portail de l’imagerie numérique
- Portail du jeu vidéo