jeudi 22 décembre 2016

Définition : Voxel

Le voxel (contraction de « volumetric pixel ») est un pixel en 3D. Il consiste à stocker une information colorimétrique avec ses coordonnées spatiales, voire temporelles, de positionnement 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é.
Une des optimisations les plus remarquables offerte 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 pixel1.
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, même si le voxel devient de plus en plus utilisé pour créer de grands environnements souvent entièrement interactifs (comme Space Engineers).
Quelques moteurs 3D utilisant un rendu par voxel :
  • (en) WinUFO et SimUFO [archive]. Il existe un applet Java pour tester WinUFO en ligne. SimUFO permet d'éditer directement le paysage dans le programme.
  • (en) Atomontage [archive] est un moteur hybride de 3D temps réel de nouvelle génération dédié aux jeux vidéo gérant la géométrie tant en voxel qu'en vectoriel, la physique et l'éclairage.
  • Id Tech 6, est un moteur de jeux vidéo permettant d'afficher de très grands environnements.

Aucun commentaire:

Enregistrer un commentaire

A ne pas manquer

LinkWithin