Java
et la 3D
Java
est un langage omniprésent sur le net. Son principal
concurrent n'est autre que Microsoft avec des solutions tels
que l'ASP et l'Active X. Contrairement à la démarche
de Microsoft, la compatibilité a présidé
au développement de Java. Ainsi une application peut-être
déployée sur toutes les plates-formes supportant
une machine virtuelle Java : Windows, Solaris, Mac OS, Linux,
AIX, BeOS... Même si dans la pratique certaines incompatibilités
sont à déplorées, il faut aujourd'hui
reconnaître la maturité du langage de Sun. Avec
Java (qui ne dépaysera pas les programmeurs C), le
web peut enfin s'enrichir de contenus dynamiques (base de
données, interactivité...). Il y a quelques
années des moteurs de rendu 3D écrits en Java
sortaient des universités. Ces solutions expérimentales
ont inspiré de nombreux éditeurs. Sun en a profiter
pour completer les API Java avec Java 3D.
Une
compatibilité multiplateforme et l'absence de plug-in
Aujourd'hui,
les éditeurs de moteurs 3D basés sur des composants
Active X rencontrent les mêmes problèmes : la
compatibilité et le poids du plug-in. De nombreux éditeurs
nous promettent des version Mac OS de leur player 3D. Mais
les mois de retards s'accumulent lamentablement... Alors que
l'i-Mac est un poste de consultation web très populaire,
et le Mac la machine de prédilection des webmasters...
Devant les temps de développement, les éditeurs
font souvent le choix d'ignorer la plate-forme de Steve Jobs.
Le problème est certainement amplifié aujourd'hui
par le changement radical de l'architecture du système
Mac. Peut-on aujourd'hui priver les utilisateurs Mac de
la 3D ?
En théorie, le Java gomme radicalement tous les problèmes
de compatibilité. Il reste cependant des applications
délicates à transposer d'un système à
l'autre. La machine virtuelle Microsoft intégrée
à Internet Explorer (et donc Windows) s'éloigne
par certains points des recommandations officielles de Sun
(ce litige est à l'origine du procès Microsoft/Sun),
la machine virtuelle fournie par Netscape est plus respectueuse
du cahier des charges Java. Globalement, depuis la version
4.0 des browsers, le Java ne pose plus beaucoup de problème.
Sur Mac, il est recommandé de ne pas compresser les
applets pour une lecture optimale des classes Java.
L'absence
de plug-in ! Voila un rêve qui devient à moitié
réalité par Java. En effet, alors que les composants
Active X viennent compléter les fonctions d'Internet
Explorer (ou Netscape), l'applet Java est exécuté
et chargé en mémoire pour chaque objet 3D.
Ainsi on obtient l'équation suivante pour les composants
Active X :
1 plug-in à charger (compter en moyenne 840Ko) - des
objets compressés (109Ko)
pour le java : 1 applet à charger (63Ko en moyenne)
- des objets moins compressés (144Ko)
Ainsi, lorsque l'internaute se connecte voici les tailles
de fichiers à télécharger :
| nombre
d'objets |
Plug-in |
Java
3D |
| 1 |
949
ko |
207
ko |
| 5 |
1385
ko |
1035
ko |
| 10 |
1930
ko |
2070
ko |
| 20 |
3020
ko |
4140
ko |
| *valeurs
données à titre indicatives (moyennes
obtenues à partir de fichiers à qualité
visuelle comparable) |
Ce tableau
montre que lorsque l'on consulte souvent des objets 3D (à
partir d'une dizaine), la solution Active X est plus adaptée.
Mais avec la multiplication des plug-ins il est assez difficile
de trouver plus de 10 objets 3D utilisant la même technologie
! Active X s'impose lorsqu'un site montre un catalogue de
nombreux objets, où dans l'e-learning où l'on
fait appel à de nombreuses scènes 3D. Dans les
autres cas, Java semble plus adapté.
Des
solutions Java 3D
Il existe de nombreuses solutions Java 3D sur le marché.
Voici les raccourcis vers nos tests :
Shout3D, EyeMatic
Hyperspace,
Kaon
Blaxxun 3D, Blaxxun Interactive
3D Anywhere, 3DI
Interzart,
Interzart AG (qui propose un plug-in+un applet)
Notons
aussi l'existence de Anfy 3D, Suma, Janet 3D, Alice (et bien
d'autres) prochainement testés. Blaxxun 3D est un applet
Freeware. Globalement ces technologies sont proches et demandent
quelques connaissances en programmation (Javascript minimum).
Généralement basées sur un import VRML,
l'interactivité des objets est souvent difficile à
gérer (les pivots ne sont pas importés). Une
bonne note pour Shout 3D qui propose un import Max de qualité
(avec les extensions Character Studio).
Certains
secteurs échappent encore aux applets
Shout
3D est sans aucun doute l'applet le plus polyvalent. Il peut
non seulement satisfaire un usage e-commerce comme ses confrères
mais aussi calculer le rendu de scènes cinématiques
complètes. L'applet est d'ailleurs le plus lourd (plus
de 100 ko), mais une fois chargé il reste en mémoire
pendant la connexion. Dans le domaine des collisions (Blaxxun
3D gère les collision dans le mode walk), les avatars
et les particules le Java reste encore timide. Nous attendons
impatiemment des démos technologiques qui explorent
ces secteurs.
Au niveau de la qualité d'affichage elle est souvent
très bonne et satisfait tous les besoins du e-commerce
(consultez la BMW de Blaxxun 3D pour vous en convaincre).
La
lenteur légendaire de Java ?
Les partisans
des plug-ins montrent du doigt la lenteur du Java. Il est
vrai que lorsque le nombre de polygones est important, les
applets sont dépassés par les plug-ins. Il est
vrai que l'architecture Machine Virtuelle propre à
Java impose l'interprétation du code Java dans des
API qui ne sont pas natives au système d'exploitation.
La gestion de la mémoire n'est pas non plus le point
fort de Java. Cependant la plupart des PC actuels interprètent
convenablement le code Java. Et la différence entre
un plug-in n'est pas si évidente, tout juste peut-on
remarquer une mauvaise fluidité qui se traduit aussi
baisse de l'ergonomie. Mais rien de véritablement rédhibitoire.
Kaon est le plus rapide des applets Java disponible, il n'a
pas à rougir face aux plug-in qui font 15 fois son
poids !
Des
nouvelles habitudes de travail
En fait
tout repose sur des habitudes de travail qui sont différentes.
Alors que les plug-in disposent de CODEC géométriques
intégrés, l'API Java 3D dispose en standard
d'une compression des données 3D moins performante,
il faudra donc réduire et optimiser les polygones avant
de les exporter !
Au final, Java ou pas Java ce qui compte le plus c'est la
qualité de la modélisation avant tout. Des exemples
aujourd'hui montrent que Java est prêt à relever
le défit 3D et possède de nombreux atouts technologiques
face aux plug-ins.
Espérons que les applets Java profiteront bientôt
des accélérations graphiques matérielles
OpenGL (la colaboration entre la librairie OpenGL et Java
doit être encore améliorée) ou DirectX
(Shout 3D le propose en option).
Quant à Surge (de Curl) qui se présente comme
un concurrent de Java il ne semble pas apporter un surcroît
de vitesse d'exécution.
L'avenir
de Java n'est pas rose pour autant : Sun a du mal à
imposer son langage aux solutions embarquées. Et dans
le domaine de la 3D Java devra faire face à Shockwave
3D. Sans compter sur Microsoft, l'ennemi juré de Sun
Microsystem !
|