This document provides information about the new features and improvements in the most recent release of BS Contact 8.0. This new release offers substantial benefits compared to former versions as it was designed with the goal of rendering speed and runtime memory optimization and comes with a download speed gain of 3D assets and scenes for content authors. So using BS Contact 8.0 can bring you performance leaps of your 3D projects in well prepared cases of more than 50%.
In-depth technical documentation for the release notes as below is available in the BS SDK with many new and updated nodes.
BS Contact 8.0 comes with a new optional user interface that helps novice users to navigate in 3D worlds. It can be evoked and removed again by pressing Ctrl. u and will be downloaded from the internet separately while you are viewing your 3d scene. The buttons have been designed with care to be self explanatory after some seconds of trying out the User Interface. The arrow buttons show the following viewpoints and the play button in the middle makes a viewpoint tour. In addition there are tooltips by mouseover. The other buttons switch between the most used navigation modes, slide, walk and examine. If you still get lost in your 3d scene there is the back button on the left that takes you to the first viewpoint of the scene. Also the ESC key take you back to the first viewpoint of the scene. Please contact Bitmanagement to put in a customer logo on the right side of the User interface bar.
BS Contact 8.0 supports now the new X3D binary compression format for static geometry. Results show that an example X3D scene in X3D classic encoding (VRML) could be reduced from 534 KB to 47 kb using x3d binary encoding.
Bitmanagement is working on the topic of geometry coding.
This means the compressed binary file is about 11 times smaller than the original file without binary encoding. Also the transmission speed of such encoded files is more than 10 times faster than the original without binary encoding in this case and the parsing speed is nearly double so fast.
In order to try the x3d binary compression with your own scenes, please load your VRML/X3D scene in BS Contact and save it using the X3DB extention. Now you can compare file sizes. Please note that only static geometry files can be translated to X3D binary at the moment. Dynamic parts will be added with a further release.
BS Contact 8.0 now has a gamepad interface with plug and play installation.
Please install the driver of your gamepad or joystick on your computer and plug in your gamepad hardware. BS Contact will look for the device connected and do the walk navigation in your scene controlled from your device. If you are interested in further navigation modi, please configure them yourself using the device plugin description in the BS SDK.
BS Contact 8.0 supports touchscreen navigation. The multi-touch messages can be caught within BS Contact on Windows 7 and can trigger events that animate the 3D content. The new FlickSensor and GestureSensor nodes allow to associate multi-touch events with objects.
Technical Demos:
FlickHouse - a house object that demonstrates navigation and flicks in EXAMINE mode
FlickSensor - demonstrates two nested FlickSensor nodes
FlickBall - flicking a sphere makes it move into the direction of the flick
PrintGestures - outputs all events that gestures produce
3Spheres - demonstrates the rotate with pivot point gesture
PrintTouches - outputs multi touch related events
TouchScreenSensorColors - displays a colorfull ring for every touch point
SimpleImageViewer - allows to zoom, rotate and pan an image, all at the same time
Bitmanagement has updated the BS SDK with the goal to help application developers search the substantial functionality in BS Contact better. The nodes include extensive new technical examples that make understanding the programming concepts easier. Please see a preview there: Cell functionality and Cells and portals inside. If you are interested in buying the BS SDK, please send an e-mail to sales@bitmanagement.com.
Using Bitmanagements geometry instancing node multiple copies of the same object are rendered in one pass. This technique is mainly for objects such as trees, grass, or buildings that contain recurrent geometries of interest. Instead of the large number of additions of objects, the performance of the scene is not affected significantly as the hardware acceleration of current graphics cards in DirectX is exploited.
In 3D scenes, the more distant objects (e.g. trees), which must normally be represented with sprites can be provided now with a real geometry. In these scenes the vegetation or other repeating objects in the distance look better.
When using conventional methods rendering many of these object instances goes hand in hand with a drastic loss of performance. However, since taking advantage of the Bitmanagement implementation and the hardware acceleration of current graphics cards (e.g. ATI and Nvidia) the designer gets an improved graphics quality with almost no performance cost.
The following technical example shows the new geometry instance node with a simple box geometry in many repetitions.
Did you ever fumble with our cascading shadows from the 7.2 release of BS Contact? In order to make it easier to produce shadows of arbitrary models on the floor we have come up with a more generalized method to cast shadows with nice blurry effects.
The new node is called ShadowFloor and you can simply set it for a whole object. The following example scene is made up of two boxes as follows:
The field emitter of the FloorShadow node references to the group of the two above boxes:
For more information refer to BS SDK.
There are so many PC configurations out there. Did you ever wonder, if your online users can see all the eye candy you put into your applications? Some older graphics cards may not have all the possibilities that your own test computers offer. In order to help you optimize your content for the capabilities of your online users graphics card, we provide the GetCap() functionality. Just check out what is possible at your users PC. Use fallbacks in your content and you can present your work optimized according to the possibilities of your users. e.g. you can enable anti-aliasing quickly, if the graphics card can handle it or check the free video memory currently available. With the command “Browser.getOption(id)”, you can get the capabilities of the current client machine.
There are many id’s available that test, e. g. whether hardware rendering is used, whether using the OpenGL renderer is used, on the amount of free video memory, on maximum texture size, whether it can do hardware generate texture coordinates, on max number of clip planes, on max number of lights supported, on z depths, on stencil depth, whether occlusion test supported and many more.
can be used to find out if you're running on Windows, Android, iOS or MacOSX.
Another example:
This function returns an array of all available anti-aliasing modes in a metadata structure. With the following code example you can print out all modes of your graphic card.
The following is the result of the above code:
The same antialiasing levels can be found in the BS Contact context menu in the "Device settings" tab.
A new flag has been added for the particle system node in order to align the direction of the movement of the particles. For instance this is especially useful for sparks.
In the right click menu you can find the new ortho view under the view tab. It provides you with an orthogonal view from above on your scene. This view is know in the CAD domain and often used to do 2D printing of cad models.
A custom mouse cursor can be added now to your 3D scene that changes according to events triggered from BS Contact. The shape of the mouse cursor can be retrieved online. This is handy, if you want to provide a visual clue to the user of your application by selecting particular information with a new mouse cursor.
The prototype declaration is an important means to express recurring program parts in the VRML/X3D language. Programmers are using it to lay out several general features in a library that can be re-used in various projects with small variations in the parameters again. Over time the creation of many such Protos will get you a "Swiss Army Knife" – toolkit with many features for programming. Such a Proto-Library is useful wherever you need to quickly create a similar functionality, but with slight modifications.
In larger projects, these proto-libraries possess several thousand Protos and therefore constitute an important part of the know-how of the company. Hence, the Protos are usually encrypted by our customers with BS Encrypt and delivered only with the products in protected form.
Often Protos are inserted in several places in the program code, which in turn requires memory to be allocated each time. That means in all other instances of the same Protos new memory needs to be taken away from the application. In the current new version of BS Contact this memory created only once through "script sharing", so you can save on all subsequent uses much more memory. The programmer does not even need to think about the memory allocation himself. The new script sharing functionality is handling this for him transparently.
So for large programming projects, such as for example interactive online games that can use many of these Protos the memory requirements will be nearly halved thanks to the new automatic “script sharing” functionality in BS Contact.
A new function has implemented to delete media systems from memory when not needed anymore. This is applicable for different kind of media such as textures, video and sound.
After the display textures can be deleted immediately without saving them to hard disc in the cache. This saves memory on the hard-disc of the user.
A new function has been added in BS Contact to set the rendering resolution independently from the embed resolution.
Arrays can be shared over instances in JavaScript now. This reduces the memory necessary in javaScript calls.
In BS Contact 8.0 there is a new functionality to specify priorities and a hierarchy for the display of transparent objects. This can be useful to correctly render glass and translucent objects, such as hair.
When avatars collide with walls or objects in a world there was a possibility to get stuck in the geometry. The user has to clumsily navigate around the obstacle in this case. This has been improved in order for the avatar to touch an object slightly not to stop its movement.
The gravity settings have been made independent of ground detection with the goal to support jump animations of avatars.
Please refer to the BS SDK for more information.
Rotate has been added in the right-click menu under the navigation tab. The user can now rotate on top of a 3D object in order to examine it better.
The new resource-manager in BS Contact 8.0 identifies the progress of loading assets online and fires events that can be caught by the programmer. Userinterfaces with download symbols can be made easy now.
In BS Contact geo you can now render also alpha textured objects such as trees and railings made from textures with a transparent channel. Such scenes can be optimized now with the BS Tiler product.
Treegroups can now be executed asynchronously in order to avoid the blocking of the rendering pipeline for a few milliseconds if executed sequentially. The experience for the user is smother with this addition.
BS Contact 8.0 can calculate possible collisions now much faster with using less memory. This results a higher frame rate and a smoother experience for the end user.
Also from the popular firefox browser in HTML many hints can be transferred to BS Contact now directly. This has been done before in IE, too. Content authors have more freedom now in supporting hints without being forced to support only one special web browser.
In CAD models lines can now be selected with the mouse. Events are fired once the mouse object hits the edge of an object in 2D projection. Content authors can use this functionality to drag cad objects dimensions and modify these objects visually.
In order to reduce the memory overhead when using the COM interface a COM Tear Off function has been developed. You can now program in COM with less memory usage.
Directional light is supported now in the shadowGroup node. You can simulate outdoor environments with sunlight now better than using spotlight.
You can hold objects now in a so called static group that does not have such a high memory usage with the drawback that you cannot change them at runtime anymore. Many applications are not in the need to change objects so often. The memory gain has direct relevancy to the speed of the engine in frames per second.
More options have been added to modify the viewing frustrum in BS Contact 8.0, for example:
You can now get touch events from the right-click sensor of your mouse.
In a shader, you can use now the last view matrix in order to create a distortion effect.
The ImageTextureMipmapLOD has been updated to work like a real level of detail node. Higher resolution images are loaded fast to the graphicscard, if visiable and close enough to the viewer to need a high visual quality.
ImageTextureLOD is an ImageTexture node with additional fields for supporting thumbnails. The node falls back to show the thumbnailTexture or loadingTexture if the main texture has not yet been loaded. In addition with DirectX9 the loading of texture is done using a separate loader thread.
Having more memory capacity available for creating larger scenes BS Contact supports under Firefox and Internet Explorer 64 Bit Systems. It is mainly used by developers in the games industry particularly for interactive applications in the Internet.
The memory is correctly released again during mouse movements
The transform node behaves now correctly in the native Collada parser in BS Contact.
Bug fix in script execution
Fix in shaders