Given by Krzysztof Walczak at ARL Database Tutorial on February 98. Foils prepared 7 October 97
Outside Index
Summary of Material
Open Inventor |
VRML language |
VRML Browsers |
Illustra Database System |
Why database support for VRML ? |
File based terrain rendering in VRML |
Terrain rendering with Illustra database support |
Objects - storing rich semantic information |
Multiversion representation |
Examples of VRML for Terrain Rendering |
Outside Index
Summary of Material
Gang Cheng, Geoffrey C. Fox, Nancy McCracken, Marek Podgorny, Chao-Wei Ou, Krzysztof Walczak |
Northeast Parallel Architectures Center |
Syracuse University |
Open Inventor |
VRML language |
VRML Browsers |
Illustra Database System |
Why database support for VRML ? |
File based terrain rendering in VRML |
Terrain rendering with Illustra database support |
Objects - storing rich semantic information |
Multiversion representation |
Examples of VRML for Terrain Rendering |
Open Inventor is an object-oriented 3D toolkit to create interactive 3D graphics applications. |
It is also a high-level object-oriented model for specifying, processing, rendering, archiving and managing complex, hierarchical structures such as encountered in 3D design. |
VRML is intended to be a language for describing multi-participant interactive simulations - virtual worlds networked via global Internet and hyperlinked within the World Wide Web. |
The first, existing VRML specification is based on the Open Inventor ASCII file format and is a minimal operational subset of Open Inventor extensive class library. |
The library was originally developed by Silicon Graphics, Inc. as the IRIS Inventor library but is now licensed to a number of implementors and is appearing for a range of platforms including Sun, IBM, HP, Windows, Mac and HP. |
Open Inventor characteristics:
|
The node is the basic building block used to create three- dimensional scenes in Open Inventor. Each node holds a piece of information, such as a surface material, shape description, geometric information, light or camera. |
The Open Inventor nodes can be grouped as follows:
|
Open Inventor maintains a database of objects. |
The database contains information representing one or more 3D scenes. |
The database consists of scene graphs. |
A scene graph is an ordered collection of nodes. |
A number of actions can be applied to a scene graph. |
Geophysical Visualization, |
Commercial Database Visualization, |
CAD, |
Desktop Publishing, |
Modeling and Industrial Design, |
Computer-based Training, |
Collaborative Work, |
Animation, |
Visual Simulation, |
Interactive 3D games, |
Scientific Data, |
Visualization Presentations, |
Virtual Reality |
Mission Statement: |
VRML (Virtual Reality Modeling Language) is an interpreted language for describing multi-participant interactive simulations - virtual worlds networked via global Internet and hyperlinked within the World Wide Web. |
History: |
VRML concept was proposed by Tim Berners-Lee and David Ragget in spring '94 during the first WWW conference in Geneva. After the conference the VRML forum was created by Mark Pesce to discuss the development of a specification. In May '95 the first version of specification was available. |
Current status:
|
The current form of VRML has been strongly influenced by the following requirements:
|
The current version of VRML specification - 1.0 is a minimal starting point for a much larger concept. |
The specification is based on Open Inventor ASCII file format. |
VRML 1.0 is a subset of Open Inventor with some additions that allow linking the objects with another VRML or HTML sites on the Web. The linking concept is similar to HREF in HTML. |
VRML 1.0 provides only mechanisms for synthetic 3D "clickable worlds" and does not specify yet any constructs for object animation, behavior and interaction. These issues are currently under intense discussion by the VRML forum (and spinoffs such as VAG) and is included in version 2.0 of the language. |
Basics:
|
Nodes are characterized by the following information:
|
Shape nodes (Cube, Sphere) define the geometry of the objects in the scene. |
The Material node defines the current surface material properties for all subsequent shapes. |
Separator node isolates its children from the rest of the scene graph. |
Texture node defines the texture map used to subsequent shapes. |
VRML nodes can be classified into three categories:
|
Shape nodes
|
Coordinate3 a set of 3D coordinates e.g. for IndexedFaceSet |
FontStyle font style for AsciiText |
Info information node |
LOD - Level-Of-Detail switches between various object representations |
Material surface material properties |
MaterialBinding specifies how materials are bound to shapes |
Normal a set of 3D surface normals, e.g. for IndexedFaceSet |
NormalBinding specifies how normals are bound to shapes |
Texture2 texture map and parameters for that map |
Texture2Transform 2D transformation applied to texture coordinates |
TextureCoordinate2 a set of 2D coordinates used by textures |
ShapeHints topology hints for surface rendering |
MatrixTransform a geometric 3D transformation matrix |
Rotation 3D rotation (axis and angle) |
Scale 3D scaling factor |
Transform a full 3D transform (scale, rotation, translation) |
Translation a translation by 3D vector |
OrtographicCamera a parallel projection from a viewpoint |
PerspectiveCamera a perspective projection from a viewpoint |
DirectionalLight a light source with rays parallel to a 3D vector |
PointLight a light source at a fixed 3D location |
SpotLight a light source with rays inside a cone |
Group nodes |
Group base class for all group nodes |
Separator encapsulates traversal state by push/pop |
Switch restricts traversal to one of its children |
TransformSeparator separator for transformation subspace |
WWWAnchor attaches URL link to a node or group of nodes |
Inline node |
WWWInline URL to a scene graph to be "inlined" |
Browsers: |
The browser is a program which reads and renders the VRML file. There are multiple available VRML browsers. Some of them are listed below: |
AmberGL VRML Browser v1.0, Fountain (AKA Caligari worldSpace), GLView, i3D, NAVFlyer, Pueblo Beta Client, Virtus Voyager, VR Scout, VRealm, VRweb, WebFX, WebOOGL, WebSpace, WebView |
Modelers: |
The modeler is a program which can be used to create three-dimensional objects or scenes. List of available modelers supporting VRML includes: |
ClayWorks, Ez3d Modeler, Fountain/Caligari worldSpace, G Web, Home Space Builder, Medit, Spinner, STRATA StudioPro Blitz, TriSpectives, Virtus WalkThrough Pro, WebSpace Author, World Builder |
VRML browser adopts VRML ascii file (gz compressed) as the communication medium and renders the scene. The MIME type for VRML is x-world/x-vrml |
The data may be received by the VRML browser itself or by the HTML browser. |
Possible methods of VRML browser integration:
|
History
|
Current status
|
Limitations
|
WebSpace was released as the first commercial browser. It is joint project of Silicon Graphics, Inc. and Template Graphics Software, Inc. |
It is built on the Open Inventor platform. |
It supports dynamic render culling, Level-Of-Detail, WWW-inlines, and texture mapping. |
The WWW-inline nodes can be local files or URL-s. |
Texture mapping is fully supported including in-file texture data and URL pointers. The graphics accepted file formats are RGB, JPG, and GIF. |
The source code of this browser is not available |
This browser has been developed by the San Diego Supercomputer Center. This is a publicly available VRML browser for SGI and UNIX platforms. It is based on Open GL and Open Inventor formats. It supports most of the VRML 1.0 specification. The source code is publicly available. |
It cannot handle Textures as URL. The only texture format that it recognizes is SGI RGB. There are also problems with Level-Of-Detail nodes. |
This browser was developed in a joint effort involving IICM (Austria), NCSA, and the University of Minnesota. |
It is publicly available for Unix, SGI, & Windows platforms. |
The source code for this browser is available. |
These browsers mostly run on the Mesa Library which is of OpenGL type. However, there are OpenGL versions of VRWeb for SGI, DEC Alpha, and Windows NT. |
This browser supports most of the VRML 1.0 |
WWW Inline is not supported on the WWW Version, although is supported in the Hyper-G version. |
Textures as URL are not supported |
Developed by Papersoftware Inc., WebFX plug-in allows rendering of VRML images as embedded objects in Web Browsers such as Netscape. |
The stand-alone VRML browser for the Windows - WebFX explorer is also available. |
It supports most of the features of VRML 1.0. |
Multiple texture formats are supported: GIF, JPG, BMP, RGB, and RAS. |
Provides extensions for collision detection, sound, and animated textures. |
WebFX is currently available only for the Windows platform and in the near future it is not expected to support any other platform except Macintosh. |
The Illustra Server is an Object-Relational DBMS (ORDBMS) |
It supports Object-Oriented management of rich data types, and at the same time provides an efficient query language based on extensions to industry-standard SQL. |
Illustra Server efficiently handles alphanumeric, character, and text data, video, images, and documents within a single repository. |
The features typical of Relational DBMS:
|
Features typical of object-oriented database technologies:
|
The Illustra Server provides an extensible platform for storage and retrieval of objects. |
Object extensions - DataBlades - plug intelligence into Illustra for specific kinds of data, extending the SQL language allowing to manage the data required by a specific application. |
DataBlade modules can be self-contained or can take advantage of data types and functions defined by other DataBlade modules. |
DataBlades provide specialized support for some application domains |
DataBlades consist of several components:
|
New types can be treated as standard built-in system types |
Functions defined in DataBlade can be executed on the client or on the server site |
The 2D Spatial DataBlade module defines 10 new data types that describe planar geometric shapes and polygons. |
The following objects can be represented:
|
The 3D Spatial DataBlade module adds support for data in three dimensional space. |
It defines 18 new data types:
|
Data can be accessed in various ways: |
SQL - Unix or MSWindows Client |
API - LIBMI - C library:
|
The goal is to store data in rich semantic format in a database system and dynamic synthesize VRML worlds on request from the user. |
Final form (VRML) is created in real-time using data stored in the database and user-defined parameters of data selection and VRML creation. |
Database system is used to store the data
|
Database keeps information about the components - not the final VRML form - semantic modeling
|
VRML representation is created dynamically
|
Data is stored as ASCII in text files |
The files can be accessed locally or through WWW |
Files may include other files (Inline) |
Some of the objects can represent links to other VRML or HTML pages |
Only the geometrical information is available |
User cannot specify what parts/kind of data he/she needs - no queries possible |
The whole world description must be sent |
No possibility of changing parameters of the world creation |
Geometrical description |
only geometrical information |
no composition structure |
no identity of components (e.g. name) |
no type information |
only geometrical queries possible |
multiversion visualization not possible |
Synthesis of VRML representation can be divided into two separate parts:
|
Why terrain shape description is treated in a special way ?
|
Data used for terrain shape modeling
|
Values of three color components (RGB) are calculated using six original values: three from the visible range and three infrared. |
Data is stored in the database in "raw" format - values describing altitude and color of each point separately. |
In this form the data is retrieved by the conversion program. |
New node of VRML 1.1 - ElevationGrid - is used |
Conversion program produces the VRML representation using parameter values given by user. |
The parameters the user can set include:
|
The creation of VRML files is automatic. |
Surface is modeled in parts. |
The elevation data is transformed to a set of points. |
The color data defines colors of particular points. |
The points are linked to obtain surfaces. |
The resolution of a particular part may vary depending on the maximum resolution requested by the user and the distance from the viewpoint. |
The following VRML structures are used to model the terrain data:
|
LOD - Level-Of-Detail is a group node used to allow applications switching between various representations of objects. |
The child nodes of LOD represent the same object at varying levels of detail. |
Which child node is used for the representation of specified object depends on the distance between this object and camera. |
The representations for higher distances have lower resolution. |
Use of LOD reduces the number of polygons to be displayed and increases the rendering speed. |
Various detail levels are achieved by creating various descriptions for each part of the surface using different resolutions (see pics). |
The left picture shows an area of 21x21 points in full resolution. The right picture shows the same area with resolution 5x5 points. |
The system uses 24-bit color. |
The color is information is obtained from the satellite images. |
The color is defined for each point separately using Material node. |
The color of a surface connecting points of different colors is interpolated. |
This solution is 2-5 times faster than the texture mapping and looks better. |
The terrain data is stored in one table with types optimized for the speed of retrieval. |
Each row of the table describes one point. |
To improve retrieval speed of the data, various kinds of indices have been set. |
The indices are optimized for fast retrieval of square parts of terrain data using various resolution levels. |
Reduction of polygons number to be rendered in one scene is crucial for the performance |
Reduction can be static or dynamic |
Static reduction is achieved by decreasing the resolution |
Dynamic reduction uses the Level-of-Detail feature |
Dynamic reduction can is achieved in two stages:
|
Additional data can be represented as "objects" |
Objects correspond to real world entities |
Description of objects includes:
|
Types define the properties of objects |
Types are named |
Types may be simple or composite |
Simple types are VRML description |
Composite types are built using simple types and transformations |
Transformation defines:
|
Multiversion approach enables to visualize the same data in various ways. |
Versions correspond to the rules of creation of VRML (types) not the objects. |
Multiversion enables to create VRML in various ways depending on the client's needs and preferences (e.g. with various levels of detail, including or excluding some types etc.) |
The hierarchy of versions is defined by the version graph |
Child version while created inherits all parent's properties - easy creation of new versions |
Only differences between parent and child version are stored - no redundancy |
Multiple inheritance possible |
Propagation of changes made in parent versions |