[OpenGL] Dessiner des voxels

Dessiner des voxels [OpenGL] - Divers - Programmation

Marsh Posté le 19-03-2006 à 12:45:41    

J'aimerais savoir quelle est la méthode la plus performante pour afficher de nombreux voxels à l'écran.
 
J'ai un fichier de 30 mo contenant un bitmap, donc à chaque pixel non noir (!= 0) je dois afficher un voxel. Toutefois je code en python et mes diverses tentatives d'affichage ont échouée pour cause de lenteur extrème.
 
Comment dois-je afficher les voxels? J'affiche des cubes? J'affiche une display list contenant un cube? Je me débrouille pour ne pas afficher les faces en commun? Il y a t'il une autre solution?

Reply

Marsh Posté le 19-03-2006 à 12:45:41   

Reply

Marsh Posté le 19-03-2006 à 13:04:08    

soit tu fais plusieures plans avec blending, soit tu utilises des Point Sprites  ?

Reply

Marsh Posté le 19-03-2006 à 13:04:44    

c'est vrai que j'ai les scans IRMs d'un pote, faudra que je joues avec :D


Message édité par bjone le 19-03-2006 à 13:04:52
Reply

Marsh Posté le 19-03-2006 à 13:35:00    

Jvai étudier ces solutions, merci.

Reply

Marsh Posté le 19-03-2006 à 13:37:34    

Et sinon, au niveau de l'éclairage, que me conseille-tu de pas trop couteux et suffisant pour détecter les formes?

Reply

Marsh Posté le 19-03-2006 à 14:02:50    

je suis pas sûr que opengl t aide vraiment pour les voxels. en python ça risque les lenteurs.
 
il y a un algo appelé marching cube, qui transforme des voxels en triangles:
http://www.essi.fr/~lingrand/March [...] cueil.html
 
il te faut peut être un occtree pour gérer les surfaces cachées:
http://www.flipcode.com/articles/a [...] rees.shtml

Reply

Marsh Posté le 19-03-2006 à 14:26:43    

Mon but est d'afficher les voxels.
J'importe des modèles discrets ou je discretise des modèles polygonaux.
 
En ce qui concerne l'algo des marching cubes il n'est pas suffisamment fiable dans certains cas. Ce qui m'interesse c'est surtout les calculs qu'on peut faire sur un modèle discret, le tout avec un affichage correct (ce que je ne suis pas sur d'avoir :p).


Message édité par WarDrone le 19-03-2006 à 14:28:17
Reply

Marsh Posté le 19-03-2006 à 14:53:48    

Alors il te faut un occtree (aussi octree, quadtree).
Un occtree prends un espace cubique et le divise récursivement en 8 sous-cubes, formant un arbre de cubes qui est utilisé en conjonction avec un buffer de segments (s-buffer) pour l affichage des faces visibles.

Reply

Marsh Posté le 19-03-2006 à 15:25:47    

D'accord merci.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed