Test of BS Contact VRML 6.1
>> Voir la version française

[ TEST OF BS CONTACT VRML 6.1 ]

1. Introduction.
After monthes of wait, BS Contact VRML 6.1 is finnally released, and is no longuer time-limited like was the demo version 6.0. We are going to review here some of the features of this edition.


2. New features.
2.1. Licences.
The licensing system is now setup. It is now possible to gain a licence for:
- an online content (by domain name or url)
- a CD-Rom content
- an user (by computer)

The informations of the licence are displayed in "Right button" >> "Help" >> "View world info".


The licence removes the little logo (at the right bottom corner of the window).


So an unlicenced user can see the licenced contents without the waterwark given the author has gotten a licence. Same for a licenced user who will no longuer have the watermark, even for unlicenced contents. It is a flexible system.

Note that licensing is mandatory for commercial applications (the price is related to the size of the project, making it affordable even for small projects).


2.2 Encrypting.
It is THE great new feature. Indeed, non-crypting of datas has always been shown has the black spot of VRML. So it is very probable that 3D professionnals (or artists) will be interested by this feature because they can't have their source accessable (by choice or because their contract doesn't allow it), which was the case until now.

Several modes of encoding (DES, 3DES, RC2, RC4, etc...) and autorization are available. Content developpers buying a licence get the encryption tool too.

Encrypted files start by the "BSCRYPT" string



2.3 X3D / XML.
Another great news : X3D/XML support.
Until now, Contact was able to read X3D files from the Core profile (same with Contact J), but it's now extended to all nodes & extensions of Contact translated in XML syntax. A string in XML syntax in a createVrmlFromString or an X3D file as Inline will also work in the "classic" VRML scenes.

This has two advantages:
- being able to prepare the arrival of X3D and convert its contents without having to change of viewer
- being able to handle the informations on the client side because of it being in XML, and so integrate in dynamical applications

Example HelloWorld.x3d from the Web3D Consortium




2.4 Optimization of large scenes.
Until now, we had several nodes for handling large and/or complex scenes: BspTree, BspGroup, Occlusion, Inclusion, OrderedGroup, Cell, Portal, CellGroup, CullGroup.
Now are added too: TreeGroup, OctTree, QuadTree.

Such structures in tree (for displaying only what is really useful) are often used in video games engines also.
For creating those structures, you can or structure by hand, or use an editor such as GLView, or Quake III's editor with the improved converter Q3BSP from Holger Grahn.


2.5 Web browser.
Since Contact 5, it has been possible to use the node Object for opening a web page above the 3D window, but it had to be recreated if you wanted to change it (url, position), which is now changed in realtime (so no need to recreate the object).

Example with the entry page of Web3d-fr




2.6 Options of the viewer.
The options available thanks to the method setOption of the Browser object can now be initialized in the WorldInfo node:

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

New options have been added also, including:
- lineWidth: specifies the strength of lines (OpenGL mode only)
- pointSize: strength of points (OpenGL mode only)
- viewpointAnimationDuration: length of time of the animation for binding from a viewpoint to another (if the transition mode is not set on immediate jump)
- mipMapLodBias: the value of bias for MIP mapping
- primitiveTessellation: sets the tesselation, aka the level of subdivision, of the primitive shapes (for example, a Sphere{} will have much less faces with a tesselation 8 than with a tesselation 128)
- globalPointLights: specifies if the lights PointLight are specific to the group in which they are or if they are global
- etc...





3. Changes.
3.1 Installation.
A CAB archive for Internet Explorer permits to auto-install Contact, and is only 1Mo. For reaching that low weight, this version is only in english, without the multi-users and joystick features.
For the manual installation, it is now compatible with Internet Explorer, Netscape, Opera and Mozilla (but without the Java EAI support for the last two ones).


3.2 Composite texture.
Since version 6.0, we have been able to use composite textures thanks to the node CompositeTexture3D, aka the render of a scene usable as a texture, but with all the flexibility that realtime rendering offers, making possible to create complex (and interactive) textures very easily.

And now with version 6.1, it is also available on OpenGL, and with transparency (if no fog or background nodes are there), which is good as-is, but even better for using it for example as an animatable transparency channel of a multitexture. This is possible thanks to the addition of the option "format" for the CompositeTexture3D node. RGB is the default format, and RGBA allows the transparency, but there are also other formats of image.

A composite texture used directly (on the left)
and as alpha channel (on the right)




3.3 Fog.
An option "radial" was added on the advanced fog node Fog2. It creates a round fog around the user (otherwise it is a more horizontal fog) which has a more realistic appearance.

Without radial


With radial




3.4 Viewpoint.
An interesting shortcut that developers were already using is F8 because it gives the position and orientation of the user, which is useful for creating viewpoints. But now, it also gives the field of view (which can be changed using the mouse wheel).

A new one even more useful: Shift+F8 copies a Viewpoint{} node in the clipboard (with the matching position, orientation and field of view) so that there is only to paste in the code for creating the viewpoint, whereas you had to juggle between windows for typing the values given in the status bar with F8.


3.5 Mouse cursor.
The mouse has two new features:
- being able to detect when the mouse is no longuer in the 3d window (thanks to the fields "mouseleave" of the DeviceSensor node or "leftWindow" of MouseSensor).
- being able to hide the cursor thanks to "Browser.hideCursor()", which is very useful for creating your own cursor instead, which can be scripted/react as the author wishes. Very interesting as extension of user interfaces or custom navigations.

Example with the true cursor hidden and a 3d "fake" cursor




3.6 Audio files with several channels.
It is now possible to use uncompressed .wav files having several channels.




3.7 Various improvements.
- Because of a patch from Microsoft (now removed from Windows Update) for Internet Explorer on XP, the urls with blank spaces were not working anymore. This problem has been solved in 6.1 anyway.
- For OpenGL, bump and the image format DUDV is now available on some ATI cards.
- For compatibility reasons, if a string of a Text node contains non utf-8 characters (since Contact 6.0, the strings have been in utf-8 in order to be able to use a much wider array of characters), it is treated as ANSI (like in the older versions).
- a method "saveWorld2" for saving the scene (like "saveWorld") but saving also the protos and inlines (for COM)
- a method "addVrmlFromString" for COM (exists also in vrmlscript via Browser.addVrmlFromString since version 5.1) for adding VRML nodes in the top level of the scene (whereas with createVrmlFromString, you had to specify where to add the new nodes).
- etc...



4. Reminder of the major features from version 6.0
4.1 Native H-Anim support
The H-Anim 2001 standard (http://www.h-anim.org) is now natively supported (faster than emulated), and, in summary, allows you to define smoothly animated characters (not mandatorily humanoids).

You can create h-anim animations mainly from MilkShape (with the expoter from Roland Smeenk), or 3dsmax (with Character Studio and the improved VRML exporter for 3dsmax 4+ available here), but note that with MilkShape, the script of the deformations are included in the files instead of refering to the native extensions of BS Contact, which is obviously slower.

                




4.2 Bump mapping
The bump method is a way to improve the level of details of an object thanks to a texture.





4.3 Procedurals textures
The node ProceduralTexture produces dynamically generated images based on the perlin 'noise' function.

Example of procedural texture




4.4 Joystick support
You were already able to use a joystick with Contact, but had to write a plugin thanks to the SDK and install it (an example of such a plugin was available however); it is now automatically installed.




4.5 "Game" navigation mode
A new navigation mode is available, similar to the one of popular FPS (Quake, Unreal, ...). This mode is divided in two states: "clickable" and "navigation".

Example using a Quake 3 scene




4.6 Support of DDS textures
For creating DDS textures, you can use the plugin from NVidia, available here, for Photoshop & compatible, or also the tool "DXTTool" from Microsoft's DirectX SDK. The support of DDS textures in the node ImageTexture includes the Cube-Maps, Volume-Maps and DXT compressed formats, but that is available only in OpenGL mode.
Note that 3dsmax 5 also supports DDS textures.





4.7 Reflections
New modes for the node TextureCoordGen: "CAMERASPACEREFLECTIONVECTOR" and "NORMAL". These two modes are particulary useful with Cube-Maps imported via DDS textures.

Example using the mode "CAMERASPACEREFLECTIONVECTOR"




4.8 Embedding in a page
It was already possible to integrate Contact in a page with the tags EMBED and OBJECT. Thanks to the arguments TRANSPARENT and more specifically WINDOWLESS, it is now possible to superpose html, flash and 3D layers.




4.9 Text rendering via textures
A new way to render texts (do not confuse with text whose font is a image, which is available since Contact 5) which can greatly improve the engine's speed: instead of using directly the font file (ex. Arial or Times New Roman), Contact generates an image mathing that font and uses it as texture, where comes a gain, freed from calculing the font everytime. This can be specified as default in the preferences: "Right button -> Preferences -> Performance Options -> Use textures for text". The author can also force its use thanks to the string USE_TEXTURE.

Usual render on the left --- Render via texture on the right




4.10 Screenshot function
The shortcut Shift+F11 (F11 alone saves the world) allows you to take a screenshot of the 3D window, saved in the cache directory, and named with an index number in order to let you take a capture with many screenshots without rewriting on the file(s).


5. Conclusion
It was worth the wait. BS Contact 6.1 is made for the enthousiasts, artists and professionnals because, while keeping it free for non-commercial uses, the encrypting function given with the licence will push the professionnals to come to VRML/X3D because guaranteeing the safety of their contents, which was impossible until now with VRML, at least for online contents.


For more informations:
- Test of Contact VRML 6.0 (Web3d-fr)
- Bitmanagement Software GmbH, the editor of the BS Contact products
- Interview od Peter Schickel, CEO of Bitmanagement
- Users guide for BS Contact VRML
- Developers section
- The "Feature labs"

Written by:
Cécile Muller
cecile@web3d-fr.com
http://www.wildpeaks.com / http://www.web3d-fr.com
07 June 2003

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