MOTEUR DE RENDU 3D
Concevoir un Moteur de Rendu 3D,
implique certains choix.
FORMATS DE DONNEES
Les structures de données normalisées permettent de ne pas
réinventer la roue et de profiter de leur notoriété.
Dans un premier temps on se contentera d'une simple
description geométrique d'un seul objet.
-
Description géométrique :
-
Il existe plusieurs formats de données 3D : .dxf , .3ds , .obj , .lwo ...
Leurs grammaires sont toujours différentes
mais ils contiennent tous la même chose
: Vertex, Arêtes, Facettes, Textures
Pour des raisons de simplicité j'ai opté pour le
format 3D Studio (ascii).
Mon parser 3DS (.asc) prend en compte
les coordonnées des vertex, les facettes et également
une modeste gestion des materiaux (couleur des faces).
Les fichiers ascii ont l'avantage d'etre facile à traiter,
pour rendre l'utilisation possible on les compressera par des algo standards
de compression sans pertes (haufman, lzw ...).
- Graphe de scène :
- Ensuite on pourra faire une gestion de scene par un arbre de type VRML.
-
VRML est un Langage de description de scènes 3D sous forme
de structure arborescente (graphe acyclique direct)
Propagation des propriétés (i.e. : Une translation d’un groupe Table entraîne la propagation des 4 pieds)
- Textures :
-
Les images sont généralement compréssées selon différentes méthodes
plus ou moins efficaces (TCD, ondelettes, Lurawave de Luratech , ...).
Elle peuvent contenir un channel Alpha (transparence) .
On utilise aussi des textures 3D.
VISUALISATION
2 solutions sont possibles :
- Utiliser une bibliothéque dédiée au rendu 3D (cf Annexes) .
- Implanter son propre moteur 3D avec des méthodes pour le tracé basées
sur des algorithmes standards.
Pour des raisons de politiques industrielles, utiliser
des solutions commerciales ou gratuites ne sont pas envisageables.
Si l'on désire faire un rendu 3D sans utiliser des bibliothèques
on doit réimplenter tout le systeme de perspective.
Pour une visualisation rapide on utilisera les algorithmes les plus rapides
Ce qui fait l'objet du chapitre suivant