The X-VRDB Model (Dynamic Database Modeling of 3D Multimedia Content)

In this section, the second main element of the X-VR approach—the X-VRDB model—is presented. X-VRDB is a high-level model, which enables representing complex virtual worlds in databases. In connection with the X-VRML language, described in the previous section, it enables implementation of advanced interactive 3D/VR applications.

Overview of X-VRDB

In the X-VRDB approach, a virtual world model (VR-Model) consists of four parts: VR-Data, VR-Schema, VR-Templates and VR-Scenes, as presented in Fig. 4.6.

The VR-Data part consists of VR-Objects which are database representations of virtual objects. A virtual object is an independent and semantically meaningful element of the virtual world. Distinguishing virtual objects in a virtual world enables their identification and independent manipulation, which in turn are necessary for implementing persistency. A VR-Object is a persistent record in the database containing a set of virtual object attribute values, e.g., position, size and color. Each VR-Object may be used to generate a coded virtual object (CVO), i.e., a representation of the virtual object in a content modeling language (such as VRML/X3D) understandable to a 3D/VR browser. Finally, a CVO interpreted in the 3D/VR browser is called a virtual object instance (VOI).

The VR-Schema part defines the virtual world structure as a hierarchy of VR-Classes, which represent virtual object classes in the database. A virtual object class is an abstract generalization of virtual objects sharing common structure of attributes and implementation. A VR-Class is a persistent record in the database that describes the structure of VR-Objects associated with it and contains rules that enable transformation of a given VR-Object into a CVO.


The VR-Classes are instances of special system classes, called class factories. The concept of class factories is similar to Metaclasses in the Smalltalk-80 language [8, 15]. Class factories permit using different methods and languages for defining classes and simplify the process of designing VR-Classes of complex virtual objects (e.g., avatars), persistent virtual objects, and multimedia objects. An example class factory, is the X-VRML Class enabling creation of VR-Classes based on the X-VRML class commands.

The VR-Templates part consists of templates of virtual scenes. A virtual scene template is a parameterized model of a set of virtual scenes sharing a common structure. A VR-Template describes the method of creating virtual scenes from the VR-Model and generation of coded virtual scenes, i.e., representations of the virtual scenes in a content modeling language.

The virtual scenes are created as spatial, temporal and logical selections of the VR-Objects contained in the VR-Model, and projection of the selected VR-Objects into a virtual scene template. A virtual scene may also contain static elements defined in the template. The processes of selection and projection can be controlled by template parameters. The values of template parameters used for generating virtual scenes are stored in the VR-Scenes, which constitute database representations of concrete virtual scenes.

X-VRDB object level modeling

Fig. 4.20 X-VRDB object level modeling

The VR-Model is stored in a database. The database schema that is used to store the data is referred to as aDB-Schema. For example, in the DB-Schema, VR-Objects are instances of the VR-Object DB-Class and are associated with instances of subclasses of VR-Class DB-Class, i.e., class factories.

A VR-Model can be modified either by the use of authoring tools operating on the database or by data sent back from virtual scene instances to the database. A possibility of modifying the database by the scene instances provides persistency to virtual worlds and enables recording user behavior.

Levels of Modeling in X-VRDB

There are three nested modeling levels in the X-VRDB approach: object level, class level, and scene level.

Object Level Modeling

At the object level, only virtual objects are modeled in a database (Fig. 4.20). In such systems, definitions of X-VRML classes and the X-VRML scene templates remain outside the database. The use of VR-Objects enables representing virtual world data in a compact way, provides means of indexing and efficient selection of objects, and enables convenient manipulation and automatic update of objects. Also, user privileges to objects can be verified at both the design time and the access time. VR-Objects, which are database models of virtual objects, have identity as opposed to only geometrical or aural representation available in coded virtual scenes. This enables referring to concrete objects even if their representation changes. VR-Objects can be manipulated by different applications—also in multiuser setups. Finally, VR-Objects can be used to implement persistency in virtual worlds.

X-VRDB class level modeling

Fig. 4.21 X-VRDB class level modeling

Class Level Modeling

At the class level, both virtual objects and virtual object classes are modeled in a database as VR-Objects and VR-Classes, respectively (Fig. 4.21). Consistency between a VR-Object structure and the corresponding VR-Class is enforced by the database system. New VR-Classes and new VR-Objects can be added without the need to modify the application code. Multiple versions of VR-Classes can be used to represent the same content in different ways, e.g., with different levels of detail [39]. Comprehensive selection of VR-Objects according to their class inheritance hierarchy is also possible. Furthermore, the database system enables selection and processing of only these virtual object classes that are actually used by VR-Objects, enabling creation of large libraries of VR-Classes without decreasing system performance. The library of VR-Objects and VR-Classes can be created/browsed by multiple authors accessing the system either locally or remotely with the use of authoring applications, such as the 3ds Max package equipped with an appropriate set of plug-ins [17].

Scene Level Modeling

At the scene level, in addition to the virtual objects and classes, the virtual scene templates are modeled as VR-Templates, while values of scene generation parameters are stored as VR-Scenes (Fig. 4.22). The database can store multiple virtual scene templates (VR-Templates) belonging to the same virtual world model. Formal declaration of VR-Template parameters (e.g., parameter name, type, domain, description, default value) simplifies building 3D/VR applications. Furthermore, representation of virtual scenes as sets of template parameters is very efficient and allows applications to manipulate data at the semantic level instead of the scene code level. It is also possible to restore previously created coded virtual scenes, or similar scenes, based on the templates and sets of parameter values.

X-VRDB scene level modeling

Fig. 4.22 X-VRDB scene level modeling

Modeling Virtual Objects

Each VR-Object is uniquely identified by its oid, which is fixed. The oid-s are used by composite objects to refer to their components, by VR-Templates to refer to VR-Objects constituting virtual scenes, and by virtual object instances (VOI) to enable implementation of persistency.

Each VR-Object contains a cid reference to its VR-Class. VR-Class specifies the set of attributes of the VR-Object (denoted VR-Attributes) and the rules of converting the VR-Object into a CVO. Not all VR-Attributes must be used in the process of creating a CVO. Attributes specified in a VR-Class may be used for selecting, categorizing, and ordering VR-Objects.

Spatial Transformations of VR-Objects

A VR-Object that is not contained in another VR-Object is called a top-level VR-Object. Top-level VR-Objects are spatially transformed in relation to the virtual world they belong to. It means that transformation of a virtual object in a virtual scene depends on the spatial relationship between the origin of the virtual scene and the origin of the virtual world. Component VR-Objects use the coordinate space of the parent composite object. Only top-level VR-Objects may be directly included in virtual scenes. The component VR-Objects are included by their parent composite objects.

Class Factories

The VR-Classes are created and handled by meta classes called class factories. Class factories belong to the DB-Schema and may be implemented either in the database management system or in a middleware layer. Each class factory may use a different method of encoding VR-Classes. For instance, specialized class definition languages such as X-VRML [46] or standard VRML PROTO syntax may be used. In specialized cases, only a set of parameters may be used to define a complex VR-Class, e.g., an animated Biped. Advanced class factories simplify the creation and handling of complex VR-Classes in the VR-Model. Specialized class factories are also used for handing multimedia data such as texture images, animation streams, and sounds in the modeled virtual world.

Class factories form an inheritance hierarchy. The root of the inheritance hierarchy is the abstract DB-Class denoted VR-Class. Real class factories are the non abstract subclasses of the VR-Class DB-Class. Since there are multiple class factories in the DB-Schema, the VR-Class inheritance relationship forms a DAG with multiple roots.

Instantiating Virtual Objects

Each VR-Class has three kinds of instances: VR-Objects, CVOs, and VOIs. A VR-Object is a persistent record in the database belonging to the VR-Data part of the VR-Model. It stores all attribute values that are necessary to build a CVO. Usually, one VR-Object in the database is converted into one CVO in a coded virtual scene. There can be, however, an arbitrary number of VOIs corresponding to the same VR-Object in different virtual scene instances. At the time of creation, all VOIs created from a given CVO are identical. However, since each virtual scene instance may evolve separately, the VOIs can be modified independently in different virtual scene instances.

This function takes into account attribute values stored in the VR-Object and implementation specified in the VR-Class.

Instantiating Virtual Scenes

A VR-Template may have three types of instances: VR-Scenes, coded virtual scenes, and virtual scene instances. A VR-Scene is a database representation of a virtual scene. VR-Scene is a persistent record in the database. Usually, a VR-Scene is created during the generation of a coded virtual scene and can be used later for regenerating the virtual scene. Coded virtual scenes are encoded in a content representation language, such as X3D. Virtual scene instances are virtual scenes interpreted in a 3D/VR browser.

Next post:

Previous post: