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 :
- La maintenance applicative.
- L'ingénierie logicielle.
- L'ingénierie de transformation (migration inter – systèmes).
- Une offre de progiciels et de solutions applicatives
- L'infogérance et l'industrialisation de la production informatique.
- Une offre Télécom et réseaux
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 :
- didacticiel,
- outil de simulation,
- présentation assistée par ordinateurs,
- site Intranet,
- site Internet.
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
- Les clients spécifiques
- L'incrustation dans browsers Web :
- Les plug'ins pour les Navigateurs Web
- Les navigateurs VRML et leurs extensions Java
- Les navigateurs propriétaires offrant des atouts à vrml
- Les applets Java
- 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 :