Accueil » Dossier » Rendu 3D : le raycasting de voxels » Page 3

Rendu 3D : le raycasting de voxels

1 : Introduction 2 : Un peu d’histoire… 4 : Un peu de technique (octree, raycasting)... 5 : Les avantages du Sparse Voxel Octree 6 : Les avantages du Sparse Voxel Octree (suite) 7 : Les limites 8 : Conclusion

Un peu de technique (voxel)…

Avant d’entrer dans les détails de l’algorithme il faut que nous précisions certains termes : voxels, octree, raycasting… tout ça c’est bien joli mais tout le monde n’a pas un dictionnaire Carmack/Français à sa disposition.

Tout comme pixel est la fusion de deux mots : picture element, signifiant donc élément d’une image, un voxel est la fusion des mots volume et pixel, c’est donc un élément de base d’un volume. Pour imaginer ça de façon plus simple, repensez donc aux blocs de lego de votre enfance, vous pouviez construire à peu près tout et n’importe quoi avec quelques petits cubes de base. Les voxels partent du même principe : un volume est approximé par un assemblage de blocs cubiques. On a donc une représentation volumique alors que les maillages de triangles ne représentent en quelque sorte qu’une coquille vide, une peau qui entoure le volume.

Image 1 : Rendu 3D : le raycasting de voxelsSi les voxels ont été utilisés à de nombreuses reprises dans les jeux vidéo, c’est surtout dans le domaine médical qu’ils sont traditionnellement employés. En effet cette primitive est particulièrement adaptée à la reconstruction de volumes à partir de successions d’images de coupes transversales que peuvent fournir un IRM notamment. Cependant la représentation de volumes à l’aide de voxels n’est pas exempte de défauts : le monde n’est pas constitué d’un assemblage de petits cubes, aussi il est impossible d’obtenir une représentation exacte de la plupart des volumes à l’aide de voxels. Ainsi l’image suivante montre un cas particulièrement défavorable avec une approximation grossière d’un tore à l’aide de voxels.

Image 2 : Rendu 3D : le raycasting de voxels

Il faut toutefois relativiser ce défaut dans le cadre des jeux vidéo : les maillages de triangles utilisés par nos jeux ne sont déjà qu’une approximation d’un volume et tout comme lorsqu’on affine une représentation en utilisant plus de triangles il est possible d’utiliser une grille plus fine de voxels pour limiter ce défaut, mais c’est alors que le principal inconvénient des voxels surgit : sa consommation mémoire.

Une simple grille de 1024 voxels dans chaque dimension occupe ainsi : 1024 x 1024 x 1024 * 4 (RGBA) = 4 Go de mémoire ! Et une telle résolution est loin d’être exagérée. Utiliser les voxels de cette façon est donc absolument  inenvisageable. Heureusement il existe une solution pour limiter cet inconvénient : les octrees ou arbres octaux.

Sommaire :

  1. Introduction
  2. Un peu d’histoire…
  3. Un peu de technique (voxel)...
  4. Un peu de technique (octree, raycasting)...
  5. Les avantages du Sparse Voxel Octree
  6. Les avantages du Sparse Voxel Octree (suite)
  7. Les limites
  8. Conclusion