Deutsch

Create your own Custom File Format and offer a free 3D Viewer

Suppose you have an application that produces 3D models that you want to save to disk and hand out to people. The people should be able to view the models and interact with them, but they should not be able to examine the inner nuts and bolts of your models, modify them or integrate them into their own 3D applications. You want to have complete control over what the users can do with your 3D models. In this case a custom file format will help you to offer a 3D Viewer free for the enduser.

You are probably developing two applications, one serves as a producer application that builds 3D models and saves them in your own file format. The other application serves as a viewer application. It can load your file format, can display it to the user and animate it, and it can let the user interact with the model in the ways you define. Since the file format is encrypted, no other third party application can load those files, however. Your applications will use the interfaces described in "Programmers Reference", especially "ActiveX Control" to produce, save and interact with 3D models.

On request, Bitmanagement will provide you with two special builds of BS Contact, BS Contact Geo, BS Conntact Stereo, etc. These special builds will support your encrypted file format, while neither the regular builds of BS Contact, nor any other application can load your file format. One of these special builds will be integrated into your producer application, and the other one into your viewer application.



To illustrate this we made a tester application that has both of your special builds integrated into one window. The third 3D window is the standard build of BS Contact. The buttons below each 3D window can perform actions like loading unencrypted VRML/X3D files or saving and loading your custom file format. This tester application simply uses the extension ".abc" for your file format, but of course you can use anything you want.

Buttons that work are underlined in green, and buttons that do not work are underlined with red. These are: "Load Scene.abc" with the standard build of BS Contact so that your models cannot be loaded with the standard build, and "Load Scene.wrl"/"Load Dummy.wrl" with the Viewer build of BS Contact, so that your viewer application cannot be used with models other than yours.

The button "Save Scene.abc" is the most interesting one. It calls the function saveWorldEncrypted() which writes out the currently loaded scene graph into an encrypted file. This means you can load a standard VRML or X3D file, modify it by adding some nodes, changing some parameters here and there, adding animations and interactivity, and then save the resulting scene graph to an encrypted file that only your viewer application can read. A complete security for any content by encryption and offering an own file format can not be guaranteed. Also see BS SDK.