This document provides information about the new features and improvements in the 6.0 release of BS Contact.
H-Anim
2001 nodes are supported as native nodes, including optimized vertex deformation
code.
The MAX-Exporter has been extended as well. The following examples have been
exported from Discreet 3D Studio Max.
ex Avatar Studio
Model
Same with kick
H-ANIM 2001 example boxman from James Smith, vapourtech.com
boxman_contact_native
Vertex Deformation done by Contact
boxman_contact
Vertex Deformation done in a Script with optimized vrmlscript native function
boxman Original
boxman, vertex deformation done completeley in vrmlscript
Native H-Anim is easy to use, simple change the EXTERNPROTO defintions, or add the urn "urn:inet:bitmanagements:node:Humanoid" for Contact as first url.
A new variant of Text rendering is introduced by using on the fly generated
Textures.
This can greately improve the readability and performance of text display.
Compared to the Contact 5 Texture Text technique, the Textures are generated internally on the fly and the font is proportional spaced.
Texture Text can be made a global default in the Settings-Performance dialog.
You can now control your avatar the same way as in many games:
Use the mouse to look around and the A, S, D and W keys to move around.
An joystick device driver supporting all Direct Input 8 capable devices is
shipped with the installer.
Connect an input device (Gamepad, Joystick etc) and try this test
example.
Bump Mapping has been added to the MultiTexture frame work.
This feature again improves the quality of available rendering effects.
Example: interactive bump test (Direct X 7+, Nvidia Geforce 3+ / ATI Radeon 9700 / Matrox G400 + required )
Example: cyberhood_bump.wrl
Anissotropic Mip-Map Texture Filtering provides better, crisper filtering for mip-mapped textures. In-depth article about Anissotropic Filtering.
Compressed Textures
If this option is checked in the preferences static textures (ImgageTextures) are compressed by the OpenGL Driver. This requires an OpenGL extensions. CompressedTexture could allow to fit more textures onto the graphics board, for complexe textured models.
MovieTexture rendering speed optimizations if repeatS FALSE repeatT FALSE.
Additions to Hardware supported TextureGen modes:
The modes CAMERASPACEREFLECTIONVECTORR, NORMAL are now supported. These modes
are esspecial usefull with OpenGL cubemaps imported via DDS Textures.
Support for DDS Textures in the ImageTexture node including Cube-Maps, Volume Maps and DXT compressed formats. DDS Textures are basically a memory dump of Direct X Texture Surfaces, the benefit is that Texture MIP-Levels, Cubemaps, Volumemaps and non-color Pixel formats can be represented.
For the OpenGL Driver this requires some OpenGL ARB extensions
OpenGL only example: dds cubemap and teapot_dds hardware reflection mapping using a true cubemap (6 Textures in one DDS file) and CAMERAPSPACEREFLECTIONVECTORE Texture coordinate generation. 3D DDS Volume textures are supported with the ARB 3D Texture extension, the TextureMatrixTransform node and 3D TexGen modes can be used to create 3D or 4D Texture coordinates.
Direct X & OpenGL examples: basic
DDS textures different DXT compression modes.
DDS Textures can be created with the NVidia DDS
Photoshop plugin. For more information see Texture
Compression Tools
Discreet 3D Studio Max 5.0 has now support for DDS Texture as well.
DDS Textures can be inspected or created using the DXTex
Tool from the Microsoft Direct X SDK.
Per default the default fullscreen size is now the desktop size.
Microsoft Windows does not yet support good 3D support for Windows spanning
several monitors. This might change with Direct X 9 and multihead display cards.
However with NVidia multihead cards in the NView Display Driver Settings the
Windows Desktop can be set to one large display, spanning 2 Monitors. In OpenGL
switching two fullscreen gives an display area covering both monitors. With
Direct X 7 there is an internal limitation to a maximum of 2048 pixels display
size in one direction.
This 3D on two montors/beamers feature is great for 3D presentation for trade
shows, installations and the like.
The Text node now decodes character codes in the string as UTF-8. The Editor
program on Windows XP allows to save Text Files in the UTF-8 Encoding.
Some characters like äöüÄÖÜßéè are looking in UTF-8 äöüÄÖÜßéè
This finally allows support for asian language, choose an appropriate True
Type Font Name for font with an extended character range.
Example with 3D extruded text: textutf8
In the MulitTexture node the setting transparent true is required to force the Appearance node to be processed with alpha blending. With the complex set of multi-texturing options it is not possible to easily determine if a given setup results in an alpha output or not.
Layer nodes without a specified translation fields are transformed as specified in MPEG, use translation 0 0 for a Contact 5 compatibility.
Window less rendering allowing 2D Transparent HTML / FLASH composition with Contact 3D has been upgraded to newer Internet Explorer version. See information and demos here.
Screenshot function in the Direct X and OpenGL Renderer, use Shift-F11 to save the current screen as BMP file to the Contact cache directory. For best quality use a Desktop color settings with 32 Bit and enable Anti-Aliasing.
The Preferences flag "reload resources" forces Contact during the initialization phase to load local available resources (e.g. local files, cached files) to the maximum extent, even if the resource might not yet be used because its invisible.
The center of rotation in EXAMINE mode can now be controlled by setting the 4th, 5th and 6th element in the avatarSize field of the NavigationInfo node. These coordinates are interpreted in the coordinate system of the bound Viewpoint node.
When a .wrl file contains no Viewpoint and no NavigationInfo node (single object) then BS Contact defaults to the EXAMINE navigation mode.
For debugging purposes the console can be shown and hidden by VrmlScript with the function Browser.showConsole(bool). Call it with true as argument to show the console. Call it with false as argument to hide the console.
Radial Fog
The Fog2 node now supports an additonal field SFBool radial with the default
FALSE, if TRUE radial fog based on radial distance around the viewer is enabled
if supported by the hardware.
Embedded Webrowser as 2D overlay using the Object node
Example: object_webbrowser.wrl
Click on WebBrowser to open/close an fixed Browser Window.
Sound2
The Sound2 node extends the Sound node to support the sound cone model of Microsoft Direct Sound, this finally allows a directed cone sound model and some more effects.
Example: sound2_test.wrl Turn on Speakers and rotate the model, so that the view position is inside the cone.
MovieTexture in DirectShow mode now supports the speed field. Depending on the seeking capabilities of the media and the supported speed range playback speed can now be controlled.
Example: timetime2.wrl (Warning big movie trailer) Movie plays at a different rate.
MovieTexture has been tested with OGG Vorbis Direct Show Filters.
Example: test_ogg.wrl
Additons to Browser.SetOption
Additons to Browser.getCap
Additons to DrawOp modes
ProceduralTexture node (experimental)
Procedural texture computes Texture images on the fly based on Ken Perlin's
noise function.
Example: proctexture.wrl
Navigation
The left mouse button double click menu has been moved to the middle mouse button.
The plugin has been renamed to bsContactVRML.
Sphere Cylinder Cone are now always treated always solid (even if parts are removed)
EXTERNPROTO default value propagation was fixed.
Support for different JPEG color spaces
bsContactVRML is fully upwards compatible with blaxxun Contact 5.1. For the ease of upgrading all COM Interfaces, CLASSID's and even the string returned by Browser.getName() are left the same. The location of registry keys has been changed.
Node Extensions
Acknowledgements
Intel for sponsoring developements like the NURBS and trimmed NURBS Extension, specifically Michael Vollmer and Dean Macri for providing assistance for the Intel Pentium III ISSE code and NurbsSurface implementation.
The Independent JPEG Group's for providing libjpeg – ftp://ftp.uu.net/graphics/jpeg
„this software is based in part on the work of the Independent JPEG Group".
Jean-loup Gailly and Mark Adler for providing zlib. ZLIB Homepage
Guy Eric Schalnat and contributors for providing libpng. PNG Homepage
S. Gottschalk - The University of North Carolina for providing Rapid & V-COLLIDE
Laurent Gauthier - incremental Universal
Media installers.