Visu 3D

, par MiKaël Navarro

Réalisation d’un moteur 3D permettant la visualisation des objets en 3 dimensions, faces creuses ou faces pleines. On notera que ce moteur permet la visualisation d’objets en fils de fer avec ou sans faces cachées, en couleur notamment en flat shading et gouraud shading. De plus la couleur, les multi-lumières et le modèle d’éclairage de Phong on été implémentés.

Installation

Systèmes supportés

 Sun Solaris version 2.5 ou supérieur ;
 Linux 2.0.x ou supérieur.

License

 Cette librairie est ’free software’(License GNU) ;
 Lisez le fichier COPYING pour plus de détails.

Installation

 Récupérer les fichiers archives (voire versions disponibles dans l’historique plus bas) ;
 Les détarer dézipper dans votre répértoire courant ;
 Taper make pour créer l’exécutable ;
 make clean efface tous les fichier objets et exécutables.

Documentation

Une explication des diverses commandes utilisés est disponible en tapant visu -h ou en cours d’exécution avec la touche h.

Quoiqu’il en soit en voici la liste ci-dessous.

Synopsis

visu -obj/asc <file.obj/file.asc> -cam <file.obj>
    -light <file.obj> -tex <file.*> -bw -gs -c -h -lights.
   
 -obj/asc charge un fichier objet file.obj ou file.asc.
 -cam charge un fichier caméra.
 -light charge une lumière file.obj.
 -tex charge une texture (tous les formats d'image sont supportés).
 -bw mode noir et blanc quand le display est supérieur à 8 bits.
 -gs mode niveaux de gris.
 -c mode couleur avec tramage en gouraud shading (mode par default).
 -lights example d'utilisation de 3 lumières.
 -h aide en ligne.

Ligne de commande

<q> ou <ESC> pour quitter.
<h> aide en ligne.
<w> rendu fils de fer.
<l> rendu fils de fer avec faces cachées.
<f> rendu 'flat shading'.
<g> rendu 'gouraud shading'.
<m> application de la texture.
<t> affichage de la texture.
<y> more tramage.
<F1> Ka--
<F2> Ka++
<F3> Kd--
<F4> Kd++
<F5> Ks--
<F6> Ks++
<F7> m--
<F8> m++
<Up> déplace la lumière vers le haut.
<Down> déplace la lumière vers le bas.
<Left> déplace la lumière vers la gauche.
<Right> déplace la lumière vers le droite.
<PageUp> éloigne la lumière.
<PageDown> rapproche la lumière.
<Tab> sélection de la lumière.

Historique

v3d.0.1.0 Commencement, ouverture du display, double buffer...

v3d.0.2.0 Translation, zoom et boule virtuelle. Interseption de l’évènement retaillage de la fenetre, centrage de l’objet.

v3d.0.3.0 Elimination des faces cachés et flat shading (lumière à l’infinie). Tri des facettes en 1/z.

v3d.0.4.1 Point lumineux modèle de Phong (ambiant, diffuse, specular). Modification des coefficiants Ka, Kd, Ks, m. Déplacement de la lumière.

v3d.0.4.2 Gouraud shading avec des XDrawPoint. Couleurs.

v3d.0.5.0 Gouraud shading avec XImage et clipping.

v3d.0.5.3 Réorganisation des fichiers. Intégration de la lecture des fichiers .ASC (format ascii de 3ds).

v3d.0.5.4 Couleur et tramage en gouraud shading.

v3d.0.5.5 Multi-lumières (example de mise en oeuvre).

v3d.0.5.6 Mapping. Lecture d’une texture. Attention cette version ne marche pour l’instant qu’a l’ESSI car elle utilise ImageMagick.3.8.7 (il faut de plus avoir accès à /u/dea_these/these/abram/lib/ImageMagick/magick/).

Prochainement

 Autres modèles de lumière.
 Textures parametriques.
 Texture mapping (à finir).
 Environment mapping.
 Multi objets avec hiérarchie.
 Animations.
 Phong mapping.
 RayTracing.
 Intégration des librairies libImageMagick, libjpeg, libtiff...

Bugs

XImage sur un display supérieur à 8 bits.

La boule virtuelle ne marche pas très bien.

Auteurs

 Navarro Mickael : klnavarro@voila.fr
 Frison Beatrice : frison@essi.fr

P.-S.

Pour toutes questions ou problèmes n’ésitez pas à me contacter à klnavarro@voila.fr

Attention : les sources ne sont plus disponibles ! Je les ai perdu :(