A list of file formats was downloaded from Brian Kaplan's page at Indiana University. This list has been edited to detail the most popular modelling packages currently in use. A complete list of formats can be seen in Appendix 1.
|Viewers:||Used by the Quickdraw 3D package from Apple.|
|Description:||Used by the AutoDesk 3D-Studio modelling, rendering and animation package on the PC. The 3DS format consists of chunks which describe what information is to follow, its ID, and the location of the next main block. This allows filters to skip chunks they don't recognise, and allows for extensions to the format.|
|Extensions:||viz, biz, vtx|
|Description:||Used by the dVS package from Division Ltd.|
|Description:||Used by AutoDesk's AutoCAD and other CAD packages.|
|Filters:||Filters are available to convert to and from the following formats: NFF, POV-Ray, Polyray, Vivid, Rayshade, RTrace SCN, Art, QRT, REND386 PLG, Renderman RIB, AutoCad DXF, Radiance RAD, Wavefront OBJ, and RenderWare RWX.|
|Description:||A 3D format from Multigen The OpenFlight format is a binary format used for input and output by the MultiGen and ModelGen database modeling tools produced by MultiGen. It is used mainly for flight simulation.|
|Description:||Used by Silicon Graphics IRIS Inventor 3D graphics toolkit.|
|Filters:||Source code for a filter which reads the Inventor format comes with IRIS Inventor in the libpfdb/libpfiv source directory.|
|Viewers:||There is a program called ivview that is available on SGI machines and is written using Inventor libraries.|
|Other information:||Inventor format is a superset of the VRML networked graphics data format.|
|See Also:||VRML format|
|Extensions:||obj (for ASCII), mod (for binary)|
|Description:||Used by the Wavefront suite of commercial high-end animation packages.|
|Filters:||The SPD (Standard Procedural Database) package is available and now contains filters to convert to and from the following formats: NFF, POV-Ray, Polyray, Vivid, Rayshade, RTrace SCN, Art, QRT, REND386 PLG, Renderman RIB, AutoCad DXF, Radiance RAD, Wavefront OBJ, and RenderWare RWX.|
|Other information:||A Postscript version of the specifications with graphics is also available.|
In a geometric model, the component parts are represented by primitives such as lines, circles and polygons. However, modelling is not straight forward as many of the objects that need to be represented are very complex. For example to model a human requires a large amount of geometric detail and body parts move in an extremely complex manner. This is further complicated by the fact that different application fields will have different requirements for the body model. A body model developed for real-time VR may be of little use in a biomechanics application. 3D modelling software such as MultiGen (MultiGen Inc.) uses geometry, hierarchy and attributes to describe objects in three dimensions.
The geometry of the model describes the data structures that represent the object shape and the computer algorithms that construct and manipulate these structures.
The geometric modelling technique can be divided up into two main areas, primitives and structure.
One of the most popular concepts that is used by many packages (such as MultiGen) is hierarchical data structuring. This method uses a tree-like structure to represent data in the object.
A good example of tree-like structure is provided by Foley, van Dam, Feiner and Hughes (1990) and can be seen in Figure 1 below.
Figure 1Example of a tree hierarchy for a simple robot (From Foley et al., 1990)
Thus it can be the seen that the robot is effectively an upper body which can rotate on a base. Attached to the body are two identical arms to which are then connected to primitive "hands" with a "thumb" gripping device.
Consequently, the structure provides an intuitive way of ordering components in the model. In addition, the structure also provides an effective way of moving either the whole model or a component. For example, if a translation is applied to the root node of the model all of the sub-nodes must consequently move. If one applies a transformation to a node lower down in the structure, only its sub-tree will be affected. For example, it can be seen from the robot structure that moving the body will cause both arms to move and consequently, both thumbs whereas, if only the left arm is moved, only the lower nodes (the left thumb) must also be moved.
Another commonly used technique is that of instancing. In many modelling examples there is a situation where the same model is required a number of times. For example, if one considers a model of a dining table in a room that has a number of chairs associated with it. Each chair will be identical to the others, and if one considers that there may be six or eight chairs, it is obviously inefficient to have to draw this number of chairs. In addition, there are other drawbacks. If the modeller decides to modify the chair, to change the cushion colour for example, the operation must be carried out on all the chairs. Similarly, creating a large number of models magnifies the possibility that errors will be made, resulting in differences between the geometry of the chair models themselves.
To overcome this a master version of the chair model geometry is created, and each time the object is required an instance of the master is generated. The instance basically points to the master model which means that all the versions are updated at the same time as the master. Many graphics packages will now support both these techniques, and they are commonly used in virtual environment construction.
The most common primitive used in 3D modelling is the polygon. Green and Sun (1995) describe a polygon as "...a boundary of a 3D plane, where the boundary of this region is specified by a list of vertices." A polygon is effectively specified by a list of vertices that define the polygons region. A number of polygons can then be combined to represent the object to be modelled. The more complex and accurate the object, the more polygons that will be required to model it.
>Figure 2 Four flat shaded spheres rendered by MultiGen. From the left, they are comprised of 20, 80, 180 and 2880 polygons respectively.
The greater the number of polygons in the model, the greater the computational effort that is used to generate the image. This is of particular relevance to virtual environments, where the display speed of the object is the highest priority.
However, compared to other primitives, polygons are relatively easy to display, have efficient display algorithms and they are easy to specify, simply by providing a list of vertices. They are also good for modelling flat faces and are well understood due to a large body of research associated with their use. Unfortunately, polygons are not particularly good for modelling curved faces and require a large number of polygons to do so. This is time consuming, and has an associated computational overhead. To overcome this problem most VR systems employ shading techniques, based on the relative position of external light sources. With careful shading, an object with a relatively coarse surface can appear smooth.
These primitives provide a more accurate method of representing objects that have curved surfaces. Curve primitives are based on parametric polynomials and surfaces can be represented using bivariate polynomials. Many types of curves and surfaces have been developed, and the mathematics behind the concepts is far more complex than that of polygons. However, curves and surfaces, in addition to providing greater accuracy, also reduce the number of primitives required in a complex model. This means that the model can be processed more quickly and decreases the amount of storage space it requires. Unfortunately, the display algorithms for these primitives are not as efficient as those for polygons and are more complicated , making the programming and de-bugging more difficult. Furthermore, these primitives are not as widely supported as polygons, although sophisticated tools will allow them to be used to import models in to a VE system.
Frame rate is a pervasive concern in virtual environments. One of the most common factors which impacts on frame rate is scene /model complexity. Specifically, the number of polygons and complexity of textures in the draw cycle (see section 4.3) has a direct bearing on the time it takes to render the frame. Many VR systems enable the world builder to trade off model complexity and frame rate by introducing a level of detail (LOD) function. Each model may be assigned a number of LODs. Only one LOD will be displayed at any time. An LOD defines the amount of detail displayed. For example, in a driving simulator the driver may observe a car moving towards him/her on the horizon. The approaching vehicle is currently a long distance away from the driver, thus much of the detail in the cars model will be redundant. Here, a low level of detail will be employed (e.g. no textures, low polygon complexity). As the car approaches, more detail may be introduced. Finally, as the car reaches its closest point from the drivers viewpoint, the highest level of detail will be displayed (this may include environmental texturing for reflection effects and a smooth body defined by a relatively large number of polygons). Here we can see that the transition between LODs is typically defined by a combination of the size of the object and its proximity in relation to the users viewpoint.
LODs may be defined in many modelling packages (e.g. MultiGen) as well as most VR authoring languages (e.g. dVS, VRML 2.0). Some packages (such as MultiGen Pro) will partially automate the process of creating levels of detail by increasing/decreasing the number of polygons in the constituent primitives.
In an ideal world it would be desirable if models could be exact representations of their real-world counterparts. However, as Green and Sun (1995) suggest "...in reality accuracy comes with a price, usually increased display time or memory usage." Accuracy is therefore, application dependent. In a VR simulation it may be possible to represent a sphere as a limited number of polygons (see Figure 2), whereas, in a CAD application, a precise representation may be required. This suggests that models created in CAD packages may not be suitable for use in virtual environments, where the ability to display models quickly is of primary importance.
Graphics Multimedia Virtual Environments Visualisation Contents