HOME

TheInfoList



OR:

OpenGL++ was a
graphics library A graphics library is a program library designed to aid in rendering computer graphics to a monitor. This typically involves providing optimized versions of functions that handle common rendering tasks. This can be done purely in software and run ...
written in C++ that supported
object-oriented Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
data structures on top of the
OpenGL OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve ha ...
3D graphics system. The project started as the result of a partnership between SGI, IBM and
Intel Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, Santa Clara, California. It is the world's largest semiconductor chip manufacturer by revenue, and is one of the devel ...
, and later,
Digital Equipment Corporation Digital Equipment Corporation (DEC ), using the trademark Digital, was a major American company in the computer industry from the 1960s to the 1990s. The company was co-founded by Ken Olsen and Harlan Anderson in 1957. Olsen was president unti ...
. It was intended to provide a higher level
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
than the "bare metal" support of OpenGL, as well as being an implementation for
Java3D Java 3D is a scene graph-based 3D application programming interface (API) for the Java platform. It runs on top of either OpenGL or Direct3D until version 1.6.0, which runs on top of Java OpenGL (JOGL). Since version 1.2, Java 3D has been d ...
. Work on OpenGL++ ended when SGI decided to partner with
Microsoft Microsoft Corporation is an American multinational corporation, multinational technology company, technology corporation producing Software, computer software, consumer electronics, personal computers, and related services headquartered at th ...
instead, leading to the
Fahrenheit The Fahrenheit scale () is a temperature scale based on one proposed in 1724 by the physicist Daniel Gabriel Fahrenheit (1686–1736). It uses the degree Fahrenheit (symbol: °F) as the unit. Several accounts of how he originally defined h ...
project, which also died.


Background

The vast majority of applications using 3D systems describe the objects in their "world" in a
data structure In computer science, a data structure is a data organization, management, and storage format that is usually chosen for Efficiency, efficient Data access, access to data. More precisely, a data structure is a collection of data values, the rel ...
known as a
scene graph Scene (from Greek σκηνή ''skēnḗ'') may refer to: Arts, entertainment, and media Music *Scene (subculture), a youth subculture from the early 2000s characterized by a distinct music and style. Groups and performers * The Scene who recor ...
. A scene graph is normally organized as some sort of a
tree data structure In computer science, a tree is a widely used abstract data type that represents a hierarchical tree structure with a set of connected nodes. Each node in the tree can be connected to many children (depending on the type of tree), but must be con ...
, with the nodes representing objects, and the edges their relationship to other objects in the world. For instance, a table might be represented by a single "table" object with several edges connecting its parts together, the table top, legs, etc. Key to high performance in 3D applications is deciding what objects in the world are actually visible given the current camera position and direction. For instance, objects behind the camera do not have to be drawn. Quick traversal of the scene graph is essential to making this "culling" operation occur quickly. Scene graphs were generally left to the developer to implement, and it was all too common to see poor examples that led to poor performance. SGI had worked on a number of projects that were intended to help the developer produce a high-quality scene graph, but none of these had become widely used for a variety of reasons.
Open Inventor Open Inventor, originally IRIS Inventor, is a C++ object-oriented retained mode 3D graphics toolkit designed by SGI to provide a higher layer of programming for OpenGL. Its main goals are better programmer convenience and efficiency. Open Inve ...
was one such example, and was intended to simplify building the scene graph, but the results were not necessarily very high performance.
OpenGL Performer {{unreferenced, date=September 2009 OpenGL Performer, formerly known as IRIS Performer and commonly referred to simply as Performer, is a commercial library of utility code built on top of OpenGL for the purpose of enabling hard real-time visual si ...
was a similar project that was intended to produce high-speed scenes and support very large numbers of objects in the "world", but was not particularly easy to use.Scene Graph Standard for OpenGL
, ARB Meeting Notes


Cosmo3D

The Inventor and Performer teams had already realized that there was no particular reason the two systems could not be combined into one, offering both ease-of-development and high-performance. This led to the Cosmo3D system, basically, a standardized high-performance scene graph that sat on top of OpenGL. Cosmo3D introduced a new
file format A file format is a Computer standard, standard way that information is encoded for storage in a computer file. It specifies how bits are used to encode information in a digital storage medium. File formats may be either proprietary format, pr ...
that could be used to store entire scenes and all the data needed to reconstruct them, the
VRML VRML (Virtual Reality Modeling Language, pronounced ''vermal'' or by its initials, originally—before 1995—known as the Virtual Reality Markup Language) is a standard file format for representing 3-dimensional (3D) interactive vector graph ...
format that is still in use. SGI produced a number of products that used Cosmo3D. Among these were a variety of VRML tools, and a large model visualization system for
CAD Computer-aided design (CAD) is the use of computers (or ) to aid in the creation, modification, analysis, or optimization of a design. This software is used to increase the productivity of the designer, improve the quality of design, improve c ...
purposes called OpenGL Optimizer. Oddly, Cosmo Code, a VRML authoring tool, was produced by a different division and did not use the Cosmo scene graph at all. Cosmo's scene graph was by no means a unique solution at the time, and a number of other graphics companies were working on similar ideas at about this time.


OpenGL++

At the 20–21 August 1996 meeting of the
OpenGL Architecture Review Board The OpenGL Architecture Review Board (ARB) was an industry consortium that governed the OpenGL specification. It was formed in 1992, and defined the conformance tests, approved the OpenGL specification and advanced the standard. On July 31, 2006, ...
(ARB), SGI floated the idea of a new standardized scene graph similar to Cosmo3D but with the express intent of being based on "standard" OpenGL. There was some interest in the concept, so at the 9–10 December 1996 meeting the group presented the first draft of the OpenGL++ concept. A follow-up meeting during 17–19 February 1997 demonstrated that there was considerable interest from most parties, with the exception of Microsoft and Sun, although there were concerns as to whether or not the ARB was the right body to support such an effort without diluting their primary job of supporting OpenGL. Development continued throughout 1997 including several distributions of the
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
. However, the ARB notes "There's been lots of work, but relatively little communication." While the work on OpenGL++ continued, Sun and SGI had also been working on a 3D standard suitable for Java. These efforts eventually broke down, and Sun went on to release Java3D. SGI suggested their Cosmo work was a sample Java3D implementation, and as this work evolved into OpenGL++ these plans moved with it. During the definition of OpenGL++, Sun stated that they were not interested in working on the effort as they were focussed on their Java3D work. Comparatively, Java3D spans two layers of the 3D stack, the scene graph and the visual interface and its widgets. By late 1997 SGI appeared to be fully committed to the OGL++ effort. They had stated that the existing Cosmo work would be abandoned and that Open Inventor, Performer and OpenGL Optimizer would be re-written to be hosted on top of OGL++. As OGL++ was intended to be a cleaned up and more flexible version of Cosmo3D, most of the Cosmo3D team started work on OGL++ and a lot of the effort was aimed at a specification and implementation that could deliver on the promise of a truly powerful yet generic scene graph.


At the end

At the March 1998 ARB meeting, to everyone's surprise, SGI presented Fahrenheit, an entirely new project. The ARB notes from that meeting note "SGI felt it was critical to work together with Microsoft, which had not been moving in compatible directions, to be able to build value-added products in the Windows environment. Fahrenheit is a large step in that direction." OpenGL++ was abandoned. The project appears to have been a victim of SGI's shifting priorities through this period, changing directions in order to partner with larger companies. When these companies exited the 3D space to focus on other product niches, SGI was left as the only supporter of the project, exactly what they were trying to avoid. Eventually, the only other company with a 3D focus was Microsoft, and the
Fahrenheit The Fahrenheit scale () is a temperature scale based on one proposed in 1724 by the physicist Daniel Gabriel Fahrenheit (1686–1736). It uses the degree Fahrenheit (symbol: °F) as the unit. Several accounts of how he originally defined h ...
project started and ended shortly after the OpenGL++ efforts. Today, no such standardized scene graph exists, and SGI has all but exited the API world. SGI has released the earlier Open Inventor code into
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
, but the source to OGL++ was never completed to any satisfactory degree. No finalized specification exists and, as with OpenGL, the spec and idea behind such an open platform would have been what lent it its lasting value, not a single implementation of a scene graph idea.


References


Further reading


An OpenGL++ Specification


(Wayback snapshot) {{DEFAULTSORT:Opengl 3D scenegraph APIs OpenGL