Test de BS Contact VRML 6.1
>> Read the english version

[ TEST DE BS CONTACT VRML 6.1 ]

1. Introduction.
Après des mois d'attentes, BS Contact VRML 6.1 est enfin sorti, et n'est pas limité en temps comme l'était la version de démonstration 6.0. Nous allons voir ici quelles sont les nouveautés de cette versions.


2. Nouvelles fonctionnalités.
2.1. Licences.
Le système de licence est en place. Il est maintenant possible d'en obtenir:
- soit pour un contenu en ligne (par nom de domaine ou url)
- soit pour un contenu genre CD-Rom
- soit pour un utilisateur (pour un poste)

Les informations sur la licence sont accessibles via "Bouton droit" >> "Help" >> "View world info".


La licence enlève le petit logo qui se trouve en bas à droite de l'écran.


Donc un utilisateur non-licencé peut quand même voir les contenus licencés sans le logo car l'auteur a acquis une licence. De même pour un utilisateur licencé qui ne verra plus le logo, même pour les contenus non-licencés. C'est donc un système flexible.

A noter que la licence est obligatoire pour les applications commerciales (le prix est fixé en fonction de la taille du projet, la rendant donc accessible même aux petits projets).


2.2 Cryptage.
C'est LA grande nouvelle fonctionnalité. En effet, le non-cryptage des données a toujours été montré comme le point noir du VRML. Il est donc fort à parier que ceci recevra un écho très positif de la part des professionnels de la 3D (ou même artistes) qui ne peuvent se permettre que leurs sources soient accessibles (par choix ou parce que leur contrat ne le leur permet pas), comme c'était le cas jusqu'à présent.

Plusieurs modes d'encodage (DES, 3DES, RC2, RC4, etc...) et d'autorisation sont disponibles. Les développeurs de contenus acquérant une licence reçoivent également l'outil d'encryptage.

Les fichiers cryptés commencent par "BSCRYPT"



2.3 X3D / XML.
Une autre grande nouveauté: le support X3D/XML.
Jusqu'à présent, Contact pouvait lire les fichiers X3D du profile Core (tout comme Contact J), mais celà est maintenant étendu à tous les noeuds et extensions VRML traduits en syntaxe XML. Une chaine en syntaxe XML dans un createVrmlFromString ou un fichier inline en X3D marchera aussi dans des contenus VRML "classiques".

Celà à deux avantages:
- pouvoir commencer à se préparer à l'arrivée de X3D et convertir ses contenus sans avoir à changer de visualisateur
- permettre un traitement de l'information du côté client du fait que c'est du XML, et donc l'intégration dans des applications dynamiques

Exemple HelloWorld.x3d du Consortium Web3D




2.4 Optimisation de grandes scènes.
Jusqu'à présent, nous disposions de plusieurs noeuds pour gérer les scènes larges et/ou complexes: BspTree, BspGroup, Occlusion, Inclusion, OrderedGroup, Cell, Portal, CellGroup, CullGroup.
A celà viennent donc s'ajouter: TreeGroup, OctTree, QuadTree.

De telles structures en arbres (pour n'afficher que ce qui est réellement utile) sont souvent utilisées dans les moteurs de jeux vidéos également.
Pour créer ces structures, vous pouvez soit structurer à la main, soit utiliser un éditeur comme GLView, ou l'éditeur de Quake 3 avec le convertisseur amélioré Q3BSP d'Holger Grahn.


2.5 Navigateur web.
Depuis Contact 5, il était possible d'utiliser le noeud Object pour ouvrir une page web par dessus la fenêtre 3D, mais il fallait jusqu'à présente re-créer cette fenêtre pour y apporter un changement (url, position) mais ceci se fait désormais en temps réel.

Exemple avec la page d'entrée de Web3d-fr




2.6 Options du visualisateur.
Les options disponibles grâce à la méthode setOption de l'object Browser peuvent maintenant être initialisées dans le noeud WorldInfo:

exemple: WorldInfo {info "options:primitiveTessellation=32,collisionDetection=false"}

De nouvelles options ont également été ajoutées, parmi elles:
- lineWidth: spécifie l'épaisseur des traits (OpenGL uniquement)
- pointSize: épaisseur des points (OpenGL uniquement)
- viewpointAnimationDuration: durée de l'animation entre deux points de vues (si le mode de transition n'est pas spécifié en saut immédiat)
- mipMapLodBias: la valeur de bias pour le mip-mapping
- primitiveTessellation: spécifie la tesselation, c.a.d le niveau de subdivision, des formes primitives (par exemple, une Sphere{} sera d'aspect beaucoup plus brute en tesselation 8 qu'en tesselation 128)
- globalPointLights: spécifie si les lumières PointLight sont spécifiques au groupe dans lequel elles sont ou sont globales
- etc...





3. Changements.
3.1 Installation.
Une archive CAB pour Internet Explorer permet d'auto-installer Contact, pesant à peine 1 Mo. Pour arriver à ce résultat, cette version n'est qu'en anglais sans les fonctions multi-utilisateurs et joystick.
Quant au fichier pour l'installation manuel, il est maintenant compatible Internet Explorer, Netscape, Opera et Mozilla (mais sans le support Java EAI pour les deux derniers).


3.2 Texture composite.
Depuis la version 6.0, nous pouvions déjà utiliser des textures composite grâce au noeud CompositeTexture3D, c.a.d. le rendu d'une scène utilisable comme une texture mais avec toute la flexibilité que le rendu en temps réel offre, cad qu'en animant les objects utilisés pour le rendu, celà change également la texture, permettant ainsi de réaliser des textures complexes (et réactives) très facilement.

Et depuis la version 6.1, ceci est également disponible sur OpenGL, et avec de la transparence (si aucun brouillard ou noeud d'arrière-plan n'est présent), ce qui est très bien en soit, mais encore plus pour l'utiliser par exemple comme couche alpha animable dans une multitexture. Ceci est possible grâce à l'ajout de l'option "format" pour le noeud CompositeTexture3D. RGB est le format par défaut, et RGBA permet la transparence, mais il existe également d'autres formats d'images.

Une texture composite utilisée directement (à gauche)
et en couche alpha (à droite)




3.3 Brouillard.
Une option "radial" s'est rajoutée sur le noeud de brouillard avancé Fog2. Elle permet de créer un brouillard rond autour de l'utilisateur, et non plus sur tout l'horizon, ce qui a un air plus réaliste.

Sans radial


Avec radial




3.4 Point de vue.
Un raccourci intéressant que les développeurs utilisaient déjà est F8 car il donne la position et l'orientation actuelle, ce qui est utile pour créer une caméra. Mais maintenant, il donne aussi l'angle de vue (en effet, la molette de la souris permet de changer cet angle).
Encore plus pratique, Shift+F8 copie dans le presse-papiers un noeud Viewpoint avec la position, l'orientation et l'angle, pour qu'il n'y ait plus qu'à coller dans le code VRML, alors que jusqu'à présent il fallait jongler entre les fenêtres pour recopier les valeurs données dans la barre de status grâce à F8.


3.5 Curseur de la souris.
La souris s'est vue rajoutée deux principales avancées:
- pouvoir détecter lorsque la souris n'est plus dans l'écran (grâce aux champs "mouseleave" du noeud DeviceSensor ou "leftWindow" de MouseSensor).
- pouvoir cacher le curseur grâce à "Browser.hideCursor()", ce qui est très utile pour pouvoir créer un autre curseur à la place, qui lui pourra être scripté/reagir comme l'auteur le souhaite. Très utile comme extension d'interfaces utilisateur ou de navigations personnalisées

Exemple avec le vrai curseur caché et un "faux" curseur 3d




3.6 Fichiers audio à plusieurs canaux.
Il est maintenant possible d'utiliser des fichiers .wav incompressés à plusieurs canaux.




3.7 Diverses améliorations.
- A cause d'un patch de Microsoft (aujourd'hui retiré de Windows Update) pour Internet Explorer sur XP, les urls avec des espaces ne marchaient plus. Ce problème a été résolu dans 6.1 de toute façon.
- Pour OpenGL, le bump et le format d'image DUDV est maintenant disponible sur certaines cartes 3D ATI.
- Pour des raisons de compatibilité, si une chaîne de caractères d'un noeud Text contient des caractère non utf-8 (car depuis Contact 6.0, les chaînes sont en utf-8 afin de permettre l'utilisation d'un beaucoup plus grand panel de caractères), elle est traitée comme si elle était en ANSI (comme dans les versions antérieures).
- une méthode "saveWorld2" pour sauvegarder la scène (tout comme "saveWorld") mais aussi les protos et inlines (pour COM)
- une méthode "addVrmlFromString" pour COM (existe aussi en vrmlscript via Browser.addVrmlFromString depuis la version 5.1) pour rajouter des noeuds VRML dans le niveau supérieur de la scène (alors qu'avec createVrmlFromString, il faut ensuite spécifier où ajouter les noeuds nouvellement créés).
- etc...



4. Rappel des autres principales fonctionnalités introduites par la version 6.0
4.1 Support H-Anim en natif
La norme H-Anim 2001 (http://www.h-anim.org) est désormis supporté en natif (plus rapide qu'en émulation), et, en résumé, permet de structurer des personnages animés (par forcément des humanoides).

Vous pouvez créer des animations h-anim à partir principalement de MilkShape (avec l'exporter de Roland Smeenk) et 3dsmax (avec Character Studio et l'exporteur VRML amélioré pour 3dsmax 4+ disponible ici), mais notez qu'avec MilkShape, l'algorithme des déformations (cad toutes les lignes de codes pour déformer) sont inclus dans les fichiers exportés au lieu de faire référence aux extensions natives de BS Contact.

                




4.2 Bump mapping
La technique du bump permet d'augment le niveau de détail d'un object via une texture.





4.3 Textures procedurales
Le noeud ProceduralTexture permet de créer dynamiquement des images basées sur la fonction de 'bruit' de Ken Perlin.

Exemple de texture procédurale




4.4 Support joystick
On pouvait déjà utiliser un joystick avec Contact, mais il fallait écrire un plug-in grâce au SDK et l'installer (un exemple pré-écrit était disponible cependant), il est maintenant installé d'office.




4.5 Navigation "jeux vidéos"
Apparition d'un nouveau mode de navigation imitant celui de nombreux jeux PC (Quake, Unreal, ...). Ce mode se subdivise en deux états: l'état "cliquable" et l'état "navigation".

Exemple utilisant une scène de Quake 3




4.6 Support des textures DDS
Pour créer des textures DDS, vous pouvez utiliser le plugin de Nvidia disponible ici pour Photoshop & compatible ou aussi avec l'outil "DXTTool" du SDK DirectX de Microsoft. Le support des textures DDS dans le noeud ImageTexture inclut les Cube-Maps, Volume-Maps et formats compressés DXT, mais celà n'est disponible que sous OpenGL.
A noter, 3dsmax 5 supporte également les textures DDS.





4.7 Réflections
De nouveaux modes pour le noeud TextureCoordGen: "CAMERASPACEREFLECTIONVECTOR" et "NORMAL". Ces deux modes sont particulièrement utiles avec les Cube-Maps importés via les textures DDS.

Exemple utilisant le mode "CAMERASPACEREFLECTIONVECTOR"




4.8 Intégration dans une page
Il était déjà possible d'intégrer Contact dans une page avec les tags EMBED et OBJECT. Grâce aux arguments TRANSPARENT et surtout WINDOWLESS, il est désormais possible de superposer des couches html, flash et 3D.




4.9 Rendu du texte via une texture
Une nouvelle variante pour le rendu de textes (à ne pas confondre avec les textes dont la police est définie dans une image, ce qui est déjà disponible depuis Contact 5) qui peut grandement améliorer les performances du moteur: au lieu d'utiliser le fichier de la police directement (ex. Arial ou Times New Roman), Contact génére une image correspondant à la police et l'utilise comme texture, d'où un gain de calculs pour le moteur. Celà peut être spécifié par défaut dans les préférences: "Bouton Droit -> Preferences -> Performance Options -> Use textures for text". L'auteur peut également forcer son utilisation grâce à l'argument USE_TEXTURE.

Méthode habituelle à gauche --- Méthode via texture à droite




4.10 Fonction "capture d'écran"
Le raccourci shift+F11 (F11 seul sauvegarde le monde) permet de faire une capture d'écran de la fenêtre 3D qui sera sauvée dans le répertoire de cache, et contient un numéro pour pouvoir permettre de faire plusieurs captures d'écran à la chaîne.


5. Conclusion
Attendre en valait la peine. Contact 6.1 s'addresse à la fois aux passionnés, artistes ou professionnels car, tout en le gardant gratuits pour les applications non-commerciales, la fonction d'encryptage livrée avec la licence poussera les profesionnels à venir au VRML/X3D car leur garantissant la sauvegarde de leur contenus, ce qui était inenvisageable en VRML pour des contenus destinés au web jusqu'à présent.


Pour plus d'informations:
- Test de Contact VRML 6.0 (Web3d-fr)
- Bitmanagement Software GmbH, l'éditeur de la gamme BS Contact
- Interview de Peter Schickel, PDG de Bitmanagement
- Le guide des utilisateurs pour BS Contact VRML
- La section des développeurs
- Les "Feature labs"


 
12 internaute(s) sur Web3d-fr
Copyright Web3d-fr 2001-2004