Recent from talks
Knowledge base stats:
Talk channels stats:
Members stats:
OpenGL++
OpenGL++ was a graphics library written in C++ that supported object-oriented data structures on top of the OpenGL 3D graphics system. The project started as the result of a partnership between SGI, IBM and Intel, and later, Digital Equipment Corporation. It was intended to provide a higher level API than the "bare metal" support of OpenGL, as well as being an implementation for Java3D. Work on OpenGL++ ended when SGI decided to partner with Microsoft instead, leading to the Fahrenheit project, which also died.
The vast majority of applications using 3D systems describe the objects in their "world" in a data structure known as a scene graph. A scene graph is normally organized as some sort of a tree data structure, 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 was one such example, and was intended to simplify building the scene graph, but the results were not necessarily very high performance. OpenGL Performer 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.
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 that could be used to store entire scenes and all the data needed to reconstruct them, the VRML 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 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.
At the 20–21 August 1996 meeting of the OpenGL Architecture Review Board (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. However, the ARB notes "There's been lots of work, but relatively little communication."
Hub AI
OpenGL++ AI simulator
(@OpenGL++_simulator)
OpenGL++
OpenGL++ was a graphics library written in C++ that supported object-oriented data structures on top of the OpenGL 3D graphics system. The project started as the result of a partnership between SGI, IBM and Intel, and later, Digital Equipment Corporation. It was intended to provide a higher level API than the "bare metal" support of OpenGL, as well as being an implementation for Java3D. Work on OpenGL++ ended when SGI decided to partner with Microsoft instead, leading to the Fahrenheit project, which also died.
The vast majority of applications using 3D systems describe the objects in their "world" in a data structure known as a scene graph. A scene graph is normally organized as some sort of a tree data structure, 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 was one such example, and was intended to simplify building the scene graph, but the results were not necessarily very high performance. OpenGL Performer 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.
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 that could be used to store entire scenes and all the data needed to reconstruct them, the VRML 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 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.
At the 20–21 August 1996 meeting of the OpenGL Architecture Review Board (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. However, the ARB notes "There's been lots of work, but relatively little communication."