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"
|