Web-based virtual reality is fast becoming an important application and technological tools in the next generation of games and simulation as well as scientific research, visualization, and multi-user collaboration. While tools based on VRML (virtual reality modeling language) are frequently used for creating Web-based 3D applications, Java 3D has established itself as an important modeling and rendering languages for more specialized applications that involve, for example, database accesses, customized behaviors, and home use mobile devices such as the PDA, mobile phone, and pocket PC (Kameyama, Kato, Fujimoto, & Negishi, 2003).
Interactive 3D Computer Graphics
In general, the field of computer graphics includes the creation, collection, processing, and displaying of data using computer technology into a visual representation or form (Rhyne, 1997). Very often, this is supplemented by the need for an interactive graphical user interface that captures user inputs through appropriate mouse, window, and widget functions. In terms of applications, computer graphics is an important subject in digital media technologies, scientific visualization, virtual reality, arts, and entertainment.
The basic theory for computer graphics can be found in the references by Pokorny (1994), Hearn and Baker (2006), and Foley, Dam, Feiner, and Hughes (2006). Very simply, in 3D computer graphic application, the components in a particular scene are often defined by using mathematical relationships or geometries. Specifically, these involve the use of graphical primitives that correspond to basic geometrical shapes for constructing graphical scenes. Each primitive may have many attributes including size and color.
To create 2D graphics, primitives such as line, circle, ellipse, arc, text, polygon, and spline are frequently used. For more complicated 3D applications, the primitives employed may include cylinder, sphere, cube, and cone. The main purpose of using these primitive-based representations is to speed up rendering in real-time. This is especially important in scenarios involving a large scale virtual world.
Since most display devices are 2D in nature, the projection or transformation of a 3D world on a 2D screen is an inherent process in most applications. This is not a trivial task, especially when there is a need to create immersive 3D effect by using lighting, volume, and shadowing techniques.
While the use of static 3D graphical primitives may satisfies the requirements in some cases, the ability for the user to interact with virtual or real objects in a 3D world are needed in a lot more applications. As examples, interactive 3D graphics can provide us with the capability to interact with movable objects or scenes, for exploring complex structures, and to better visualize time varying phenomena and architecture design. In general, with realistic interaction included in a 3D world, we arrive at what is commonly known as virtual reality.
To create 3D computer graphical applications, a variety of programming tools may be needed depending on the type of applications and hardware support available. A commonly used programming tool, very often provided in the form of graphical libraries, is OpenGL (open graphics library). OpenGL is in turns based on GL (Graphics Library) from SGI. OpenGL has grown to be an industrial standard library for graphical application development, and consists of a set of procedures and functions that allow the programmer to specify objects and operations associated with producing high quality computer graphics. Figure 1 illustrates the rendering pipeline used in OpenGL.
OpenGL rendering pipeline