3D virtual environments are used in several domains and cover many usages from entertainment to learning through computer-aided design for industrials. Even if they grow in number each year, a remaining problem impedes their adoption and distribution. It is indeed very difficult to import data into a virtual environment other than the one it has been designed for. This situation leads to several other problems that impede the creation of new virtual environment, increase their production cost and restrict user access. Here, we present a solution that proposes reconciliation of existing and coming models in order to make 3D virtual environments contents and software components interoperables. This solution relies on two complementary elements: a software architecture and a 3D file container model. We called our system the SGA for Scene Graph Adapter. It is a generic and modular architecture which allows the loading of several 3D formats in most 3D virtual environments software components. The SGA not only adapts scene graphs encoded in 3D files into scene graphs used by rendering software components but also manages the synchronization between the involved scene graphs during the running of the application of a 3D virtual environment. We have made an implementation of this architecture as well as several instantiations that allows the loading of X3D and COLLADA files into an application which relies on the Ogre3D rendering engine and the Bullet physics engine. It allows us to demonstrate the feasibility of our solution and also to assess its performances. Our 3D file container makes it possible not only to compose 3D scenes made of several 3D files but also to combine their features as well as make them interact in the rendered environment. This model has been called 3DFC for 3D File Container and it relies on the SGA for the adaptation of the encapsulated scene graphs from the referenced files. We have made an instantiation for 3DFC that has been integrated into our SGA implementation. Thus, we are able to mix X3D and COLLADA models in a single scene and to combine interaction features provided by X3D with physics properties allowed by COLLADA.
Interoperability of 3D virtual environments: a reconciliation model for contents and software components