BS Contact

Version 6.0

Updated 25/11/2002

 


Introduction

This document provides information about the new features and improvements in the 6.0 release of BS Contact.

Additions

Native H-Anim 2001 node support

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.

Text Rendering via Textures

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.

Example

Texture Text can be made a global default in the Settings-Performance dialog.

 

Game like navigation style

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.

More on GAME mode

 

Joystick Device driver

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.


Environment mapped Bump Mapping in Direct X Renderer

Bump Mapping has been added to the MultiTexture frame work.

This feature again improves the quality of available rendering effects.

Bump Mapping documentation

Example: interactive bump test (Direct X 7+, Nvidia Geforce 3+ / ATI Radeon 9700 / Matrox G400 + required )

Example: cyberhood_bump.wrl

 
Improvements in OpenGL renderer

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.

Multi Monitor tips

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.

 

Important changes

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.

 

Misc

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.

Sound System

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

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.

Bugfixes

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

Compatibility with blaxxun Contact

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.

 

Further Info:

Contact 5 Release Notes

Node Extensions

Scripting

Related links:

VRML 97 Specification

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.