Terrace, Pool, Reception, Bar, Restaurant and magnificent views of Dunk Island and the Coral Sea. |
|
At 2228 meters above sea level Mount Kosciuszko is Australia's highest peak.
|
OpenGL |
![]() |
Open InventorThe OO format of SGI |
![]() |
OpenGL PerformerOpenGL Performer provides a powerful and extensible programming interface (with ANSI C and C++ bindings) for creating real-time visual simulation and other interactive graphics applications. |
![]() |
OpenGL Multipipe
|
![]() |
OpenGL is a graphical library introduced by Silicon Graphics in 1992 to allow developers to write a single piece of code, based on the OpenGL API2, which is supposed to run in various platforms (as long as they have an OpenGL library implementation).
Since its inception OpenGL has been controlled by an Architectural Review Board3 whose representatives are from the following companies: 3DLabs, Compaq, Evans & Sutherland (Accelgraphics), Hewlett-Packard, IBM, Intel, Intergraph, NVIDIA, Microsoft, and Silicon Graphics.
Most of the Computer Graphics research (and implementation) broadly uses OpenGL which has became a de facto standard. Virtual Reality is no exception to this rule.
OpenGL Architecture Review Board, http://www.opengl.org
There are many options available for hardware acceleration of OpenGL based applications. The idea is that some complex operations may be performed by specific hardware (an OpenGL accelerated video card such as those based on 3DLabs Permedia series or Mitsubishis 3Dpro chipset for instance) instead of the CPU which is not optimized for such operations. Such acceleration allows low-end workstations to perform quite well yet at low cost.
We will see that such is the importance of OpenGL that both VRML and Java3D are built on top of it, i.e. if a given workstation has hardware support for OpenGL the VRML browser and Java3D, will also benefit from it.
These standards are mainly concerned with graphics and rendering of 3D scene graphs. They have very little or no consideration about communication between users and other networking related issues.
Microsoft DirectX® is a group of technologies designed by Microsoft to allow Windowsbased computers to run and display applications rich in multimedia elements such as fullcolor graphics, video, 3-D animation, and surround sound. DirectX is an integral part of Windows 98 and Windows 2000, as well as Microsoft® Internet Explorer 4.0. DirectX components may also be installed in Windows 95 as an optional package.
DirectX allows a compliant application to run in any Windows based system, independent of particularities of hardware of each system. In some sense it seems similar to OpenGL; however there is a logical limitation in disponibility as it is a Windows specific component.
DirectX accomplishes its task via a multilayered structure. The Foundation layer is responsible for resolving any hardware dependent issue. DirectX also allows developers to deploy creation and playback of multimedia content via DirectXs Media layer. A third layer, Component, complets the high level protocol layer stack.
Some VRML browsers also provide a Direct3D based version
(as well as the common
OpenGL). A good example is blaxxuns Contact 4.04
VRML 2.0, which is the latest version of the well-known VRML format, is an ISO
standard (ISO/IEC 14772-1:1997). Having a huge installed base, VRML 2.0 has
been designed to support easy authorability, extensibility, and capability of
implementation on a wide range of systems. It defines rules and semantics for
presentation of a 3D scene.
Using any VRML 2.0 compliant browser, a user can simply use a mouse to navigate through a virtual world displayed on the screen. In addition, VRML provides nodes for interaction and behavior. These nodes, such as TouchSensor and TimeSensor, can be used to intercept certain user interactions or other events which then can be ROUTed to corresponding objects to perform certain operations.
Moreover, more complex actions can take place using Script
nodes which are used to write programs that run inside the VRML world. In addition
to the Script node, VRML 2.0 specifies an External Authoring Interface (EAI)
which can be used by external applications to monitor and control the
VRML environment. These advanced features enable a developer to create an interactive
3D environment and bring the VRML world to life.
Java 3D is part of the Java Media APIs developed by Javasoft. Providing developers with high level constructs for creating and manipulating 3D geometry in a platformindependent way, the Java 3D API is a set of classes for writing three-dimensional graphics applications and 3D applets.
Since a Java3D program runs at the same level as any other Java program/applet
in the virtual machine, controlling the virtual world
becomes very easy through calling the Java3D API from any Java program. Although
Java3D and VRML both appear to target the same application area, they have fundamental
differences. VRML is aimed at a presentational application area and includes
some support for runtime programming operations through its External Authoring
Interface and the Script node, as mentioned earlier. Java 3D; however, is specifically
a Java language API, and is only a runtime API. Java 3D does not define a file
format of its own and is designed to provide support for applications that require
higher levels of performance and interactivity, such as real-time games and
sophisticated mechanical CAD applications. In this sense, Java 3D provides a
lower-level, underlying platform API.
Many VRML implementations can be layered on top of Java 3D. In fact, it is possible to write a VRML browser using Java 3D, such as the browser developed by VRML consortiums Java3D and VRML Working group.
Living Worlds (LW) is a Working Group of the VRML Consortium, supported by a
large number of organizations. The LW effort aims to define a set of VRML 2.0
conventions that support applications which are multiuser and interoperable.
Scenesharing", which is concerned with the coordination of events
and actions across the network, is one of the main elements of LW. In short,
LW is a first attempt to devise a common VRML 2.0 interface to support basic
interaction in multi-user virtual scenes and enables each participant to know
that someone has arrived, departed, sent a message or changed something in the
scene.
Although LW specifies rules for object sharing and exchanging
update messages across the network, it is not a communications middleware
and the reason it is being presented in this section is that it is also not
concerned with graphics and rendering. In fact LW does not care about the actual
technical implementation of the communications system that enables world sharing.
Referred to as the Multi User Technology (MuTech), the actual system that runs
on the network and is responsible for message passing among clients can be developed
by any technology as long as its interface to the VRML world follows the LW
specifications. Currently no implementations of LW are publicly available.
http://www.vrml.org/WorkingGroups/living-worlds/
Open Community (OC) is a proposal of standard for multiuser enabling technologies from Mitsubishi Electric Research Laboratories. Spline (Scalable Platform for Large Interactive Networked Environments) is an implementation compliant with OC which provides a library with ANSI C and soon Java API. Such library provides very detailed and essential services for real-time multi-user cooperative applications. For its communication, Spline uses the Interactive Sharing Transfer Protocol (ISTP) which is a hybrid protocol supporting many modes of transportation for VR data and information, namely
The last two subprotocols are build upon the other three. ISTP does not provide videostreaming capability to date, however such support could be provided by extending ISTP with an extra appropriated subprotocol.
La solution Open Source de Geometrek est peut être
une alternative ou un point de départ pour ceux qui veulent mettre au
point une communauté virtuelle sans avoir à être dépendant
d'un éditeur. Le serveur et le client sont développés en
JAVA, Deep Matrix est compatible avec les plug in VRML les plus courants (Cortona,
Blaxxun, et CosmoPlayer), plug in qu'il utilise comme simple moteur 3D. Vous
l'avez compris, la solution est très ouverte, elle est en plus gratuite
pour une utilisation non commerciale.
Voici un autre serveur multi-utilisateurs Open Source.
Il est bâti sur la même architecture que Deep Matrix : un serveur
en Java, un client Java avec un plug in VRML pour afficher le monde virtuel.
Le protocole de partage de monde (déplacement d'objets, message privé,
événements partagés) est intéressant. VNET vous
est fourni avec ses sources.
Actualité :
VNET et Deep Matrix sont des solutions qui sont abandonnées depuis l'année
1999.
Suite aux problèmes financiers de Blaxxun, beaucoup de créateurs
de mondes virtuels ne savent pas comment continuer à partager leurs créations,
si Blaxxun venait à fermer son serveur gratuit. Certains groupes d'utilisateurs
s'organisent actuellement pour "déterrer" VNET et DeepMatrix.
Ces deux solutions sont effet stables et pleines de promesses, elles pouraient
constituer une alternative à la solution gratuite de Blaxxun. Espèrons
tout de même que Blaxxun survive à la tempête !
HLA is a framework for distributed simulation systems
developed by the U.S. Defense Modeling and Simulation Office (DMSO). HLA attempts
to provide a very generic environment that any virtual object can attach to
in order to participate in a simulation. It is a very well-thought architecture
that defines standard services and interfaces to be used by all participants
in order to support efficient information exchange. HLA is adopted as the facility
for Distributed Simulation Systems 1.0 by the Object Management Group (OMG)
and is now in the process of becoming an open standard through the IEEE.
HLA's Runtime Infrastructure (RTI) is a set of software components that implement
the services specifies by HLA. Today, a few RTI implementations for different
platforms are available.
If you want to learn HLA... http://www.ecst.csuchico.edu/~hla/courses.html
DIS / HLA - military standards tailored to the requirements of simulation and
war games. DIS is an
efficient, if inflexible, protocol for medium scale simulation. The imaginatively
named Higher Level
Architecture (HLA) is the spiritual successor to DIS, although it focuses more
closely on the
problems of arranging very large-scale simulations rather than the run-time
distribution of data.
HLA remains a hot topic in defence circles. Limitations of the specification
provide great
opportunities for the lab, with the prospect of serious defence dollars on offer
for a full simulation
infrastructure
Although not specifically designed for 3D simulations and virtual environments, JSDT is part of the Java Media APIs developed by Javasoft and provides real-time sharing of applets and/or applications. JSDT provides many facilities such as tokens that can be used for coordinating shared objects. It also provides different modes of transportation including a reliable socket mode, RMI mode which uses Remote Method Invocation, and a multicast mode that makes use of the Lightweight Reliable Multicast Protocol (LRMP) and is useful for shared application with a large number of participants.
Java and its associated media streaming and networking packages represent an alternative basis for developing collaborative virtual environments. The core class libraries provide socket and distributed object (RMI) models of communication. In addition, there are a number of standard Java extensions that provide specialised data distribution mechanisms. Two extensions are especially relevant to the task of building collaborative virtual environments: the Java Shared Data Toolkit and the Java Media Framework.
The Java Shared Data Toolkit (JSDT) provides an abstract model of the network, designed specifically to support collaborative applications.
"The JavaTM Shared Data Toolkit software is a development library that allows developers to easily add collaboration features to applets and applications written in the Java programming language."
"This is a toolkit defined to support highly interactive, collaborative applications written in the Java programming language."
The fundamental abstraction used in the JSDT is that of a shared byte buffer. These buffers are un-typed blocks of data, but with the use of Java object serialisation can be used to replicate complete graphs of objects. Buffer replication can be performed over a range of different network transports, including a reliable multicast system as well as RMI, sockets and even http. A great strength of JSDT is that it is pure Java, and hence 100% portable. The main limitation is that it is not tuned for high performance or low latency, so its suitability for building collaborative VEs is an open question. If object serialisation is used then JSDT will also have problems inter-operating with non-Java clients.
"The Java Media Framework (JMF) is an application
programming interface (API) for incorporating time-based media into Java applications
and applets."
"The Java Media Framework API specifies a unified architecture, messaging
protocol and programming interface for playback, capture and conferencing of
compressed streaming and stored timed-media including audio, video, and MIDI
across all Java Compatible platforms."
Essentially, JMF allows you to manage audio and video
streams within a Java program. The crucial point about JMF is that most of the
"real" work is done in native code. Native platform codecs are used
throughout which means that performance is excellent, but compatibility is harder
to achieve.
The combination of the core Java networking classes, JSDT, JMF, a portable execution
format (the Java class file) and automatic platform neutral serialisation mechanism
make Java a very attractive base on which to build collaborative VEs. As with
Java3D the principle concern is the runtime performance of Java. However, experiments
conducted by the authors with early implementations of Java indicate that network
bandwidth is a more common cause of performance bottlenecks : even a simple
interpreted JVM can saturate a 155Mbit ATM network. Interoperability problems
not-withstanding, Java should be considered an excellent environment for networking
applications.
Texte extract from a non published paper by Sam Taylor and Hugh Fisher
CAVERNsoft is most succinctly described as a C++ hybrid-networking/database library optimized for the rapid construction of collaborative Virtual Reality applications. Using CAVERNsoft VR developers can quickly share information between their applications with very little coding. CAVERNsoft takes over the responsibility of making sure data is distributed efficiently.
The Information Request Broker (IRB) is the nucleus of all CAVERN-based client and server applications. An IRB is an autonomous repository of persistent data driven by a database, and accessible by a variety of networking interfaces. The goal is to develop a hybrid system that combines a distributed shared memory model with distributed database technology and realtime networking technology under a unified interface to allow the construction of arbitrary collaborative VR (CVR) topologies.
http://www.evl.uic.edu/cavern/cavernsoft/
Still under active development, DIVE is a well-known and widely respected toolkit. It is designed around the notion that the environment should serve both for interactions and for developing new material. It makes extensive use of Tcl to provide extensibility and provides persistence through the use of a centralised database server.