fbpx
Wikipedia

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.[1] Work on OpenGL++ ended when SGI decided to partner with Microsoft instead, leading to the Fahrenheit project, which also died.

Background edit

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.[2]

Cosmo3D edit

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.[2]

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.

OpenGL++ edit

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.[2] 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.[3] Development continued throughout 1997 including several distributions of the API. However, the ARB notes "There's been lots of work, but relatively little communication."[4]

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.[2] 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.[5][6]

At the end edit

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."[2] 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 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, 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 edit

  1. ^ "3D Java APIs, OpenGL++". from the original on 2009-06-26. Retrieved 2008-05-05.
  2. ^ a b c d e Scene Graph Standard for OpenGL 2008-06-14 at the Wayback Machine, ARB Meeting Notes
  3. ^ ""Meeting Notes, February 17-19, 1997"". from the original on 2008-02-27. Retrieved 2008-05-05.
  4. ^ ""OpenGL ++ ARB Interest Subcommittee Meeting Notes"". from the original on 2008-05-16. Retrieved 2008-05-05.
  5. ^ ""OpenGL ++ ARB Interest Subcommittee Meeting Notes, September 8, 1997"". from the original on May 16, 2008. Retrieved May 5, 2008.
  6. ^ ""Skimmer in OpenGL++ Maze in OpenGL++"". from the original on 2009-01-07. Retrieved 2008-05-05.

Further reading edit

  • An OpenGL++ Specification
  • (Wayback snapshot)

opengl, graphics, library, written, that, supported, object, oriented, data, structures, opengl, graphics, system, project, started, result, partnership, between, intel, later, digital, equipment, corporation, intended, provide, higher, level, than, bare, meta. 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 1 Work on OpenGL ended when SGI decided to partner with Microsoft instead leading to the Fahrenheit project which also died Contents 1 Background 2 Cosmo3D 3 OpenGL 4 At the end 5 References 6 Further readingBackground editThe 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 2 Cosmo3D editThe 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 2 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 OpenGL editAt 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 2 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 3 Development continued throughout 1997 including several distributions of the API However the ARB notes There s been lots of work but relatively little communication 4 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 2 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 5 6 At the end editAt 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 2 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 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 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 edit 3D Java APIs OpenGL Archived from the original on 2009 06 26 Retrieved 2008 05 05 a b c d e Scene Graph Standard for OpenGL Archived 2008 06 14 at the Wayback Machine ARB Meeting Notes Meeting Notes February 17 19 1997 Archived from the original on 2008 02 27 Retrieved 2008 05 05 OpenGL ARB Interest Subcommittee Meeting Notes Archived from the original on 2008 05 16 Retrieved 2008 05 05 OpenGL ARB Interest Subcommittee Meeting Notes September 8 1997 Archived from the original on May 16 2008 Retrieved May 5 2008 Skimmer in OpenGL Maze in OpenGL Archived from the original on 2009 01 07 Retrieved 2008 05 05 Further reading editAn OpenGL Specification OpenGL OpenGLPlus Possible Layers Wayback snapshot Retrieved from https en wikipedia org w index php title OpenGL 2B 2B amp oldid 1216279423, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.