SOMMAIRE

Objectif : Architecture Logicielle pour une Visualisation 3D le Web

Contexte : Stage DESS IIN : SSII Transiciel (4 mois) + IRIT, Animaçao

Etude : Historique, Utilisations, Solutions existantes

Réalisation : Plusieurs modules et prototypes démonstratifs


















CONTEXTE

GROUPE TRANSICIEL / TRANSICIEL SUD OUEST (Ex Diaf) / Agence Industrie & Service

TRANSICIEL est un groupe fondé en 1990 et son activité se divise en six branches :

L'entreprise DIAF créée en 1984, a depuis été rattachée au groupe TRANSICIEL courant 1998.

Parmis les 5 agences, l'agence IS fournit les services suivants :

















HISTORIQUE


                   | - Algo optimisés , API 3D efficaces
                   | - effets de plus en plus réalistes
                   | - utilisation jutifiée : jeux, démos
                   |

   Visualisation 3D (~ 1980) ---------\        (~ 1996)
                                         \__   Nouveau Média :
                                         /      "3D online"
   Internet : le web (~ 1995) --------/

                   |
                   | - Modèle totalement distribué
                   | - Interface uniforme
                   | - Centralisation des composants logiciels
                   | - Extensibilité : plugins, applets java 
 


















UTILISATIONS

Communication électronique
Conférences multi-sites, Télétravail, Prototypage/maquetage virtuel, communautés virtuelles, forums, chats
Commerce Electronique
Vitrine virtuelle, showcase, personnalisation des produits
Simulations / Jeux Vidéo
Applications militaires de simulation de combat multiagents multi-sites
Retransmission d'évènements en direct
Diffusion d'évènements sportifs en animation 3D
Démonstrations / Animations :
Galleries, Musées, Reconstructions historiques, Démo explicative d'un (dé) montage.
Moins lourd à gérer que des films
Téléprésence / Téléopération:
Visualisation scientifique, médecine, enseignement , Présentations de résultat (grilles economiques, scientifique...)

















SOLUTIONS

  1. Les clients spécifiques

  2. L'incrustation dans browsers Web :
    1. Les plug'ins pour les Navigateurs Web
      1. Les navigateurs VRML et leurs extensions Java
      2. Les navigateurs propriétaires offrant des atouts à vrml

    2. Les applets Java

    3. Les Solutions hybrides

















VRML & Dérivés

Avant tout un standard, un langage d'un monde 3D et des specifications pour son rendu .

Plugins pour browsers web

Besoins (esthétique, possibilitées) => produits concurents (Metastream, Cult3D, Mendel3D ...)

Extension VRML : EAI
Dialogue entre le browser vrml et un programme externe


















JAVA

Applets : mini application graphique s'exécutant dans un browser html

Bibiothèques importantes : (réseaux, GUI ...)

Java 3D : pas encore intégré de facon stable dans les browsers Web
pb! : Evolution Java >>> Intégration dans les produits phares (windows, ie, netscape)

On se limite aux premières versions de java : java 1.1 / java.awt.*

Programation efficace : performances suffisantes

Portabilité - Evolutivité simple : Développement facilité & rapide


















CONCEPT

Logiciel multiplateforme, évolutif & INDEPENDANT (pas de libs commerciales ou gratuites)
Logiciel : 100% Java 1.1 : Applets Java & Solution hybride : java / vrml.eai
Communication client/serveur
Sockets, httpd, Corba, java R.M.I.
Rendu 3D 100% Software
Algos classiques : élimination des faces cachées : ZSort & Zbuffer
// ZSORT
- pour chaque facette de la geometrie
   - calculer le centre de gravité
- trier les facettes par rapport à la composante z du centre
- pour chaque facette de la plus lointaine à la plus proche
   - tracer la facette
// ZBUFFER
- pour chaque facette de la géométrie
   - calculer le triangle projeté
      - pour chaque pixel du triangle : screen[x][y]
          - calculer le point 3D correspondant

             - si le point.Z > zbuffer[x][y] {
                  zbuffer[x][y] = point.Z
                  dessinne le pixel 














REALISATION

40 classes ( ~ 7'000 lignes de code java & c++ )
Architecture composée de différents modules
  • Visualisation (Applet java) Flat, Zbuffer, Zsorting ...
  • Visualisation VRML-EAI (dialogue Java/plugin vrml)
  • Parser objet 3DS
  • Animation (gestion de caméra / transformation)
  • Distribution des transformations (java RMI)

Applications / Prototypes




























CONCLUSION

Points Majeurs : Pari difficile : Choix & Sacrifices : Performance / Popularité