The inVRs framework provides an approach which combines the use of pre-generated sub-scene graphs to support already modelled entities, a definition via XML files for general world setup and standardised transmission over the network as well as a simple graphical editor which allows for fine-tuning the layout of VEs.
Most parts of the transformation hierarchy of the VE are kept inside the world database. This database contains information about all objects in the VE which can become relevant for interaction, network communication and navigation. The combination of the scene graph as graphical database and the world database as a high-level object database represents the complete description of the representation of the VE.
Interconnection of entities for the implementation of the application logic is not handled by inVRs in order to provide a more flexible programming approach.
At the initialisation of the application, the world database and the scene graph are filled with a set of objects, which are in geometrical proximity to the entry point of the user’s camera position.
The world database hosts different types of objects as follows:
An environment is a rectangular area in the VE. Each environment has its own coordinate system and is used to group entities and tiles. Environments can be used for optimisation considering message distribution and frustum culling.
- Environment Layout
The environment layout data structure describes the alignment of the different environments. This object can be considered the root object of the entire VE layout.
An entity is an object inside the VE which is used for interaction and collision detection. Entities typically have a representation inside the scene graph which can be graphical or they can consist only of a bounding volume (e.g. for the implementation of sensors and triggers).
- Entity Type
The entity type is used to group certain kinds of entities for interaction and application logic purposes. The entity type definition stored inside the world database acts as a template for all entities of that type. Applications developed with inVRs typically derive their own entity types and generate entities based on that type.
Tiles are used mainly for structuring the environment. They are important for collision detection, culling and an easy setup of the VE. Tiles do not necessarily have to be used, but provide features which help the optimisation of the virtual world in the area of network communication.