OpenGL++: Difference between revisions

Content deleted Content added
Filled in 2 bare reference(s) with reFill 2
Link suggestions feature: 1 link added.
 
(3 intermediate revisions by 3 users not shown)
Line 1:
{{Short description|Overview of OpenGL++}}
'''OpenGL++''' was a [[graphics library]] written in [[C++]] that supported [[Object-oriented programming|object-oriented]] data structures on top of the [[OpenGL]] 3D graphics system. The project started as the result of a partnership between [[Silicon Graphics|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]].<ref>[{{Cite web |url=http://www.sdsc.edu/~nadeau/Talks/NASA_EOSDIS/3djava4.htm |title=3D Java APIs, OpenGL++] |access-date=2008-05-05 |archive-date=2009-06-26 |archive-url=https://web.archive.org/web/20090626034706/http://www.sdsc.edu/~nadeau/Talks/NASA_EOSDIS/3djava4.htm |url-status=live }}</ref> Work on OpenGL++ ended when SGI decided to partner with [[Microsoft]] instead, leading to the [[Fahrenheit graphics API|Fahrenheit]] project, which also died.
 
==Background==
Line 6 ⟶ 7:
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.<ref name=ARB>[http://www.cg.tuwien.ac.at/~wimmer/apis/opengl++_summary.html Scene Graph Standard for OpenGL] {{Webarchive|url=https://web.archive.org/web/20080614114917/http://www.cg.tuwien.ac.at/~wimmer/apis/opengl++_summary.html |date=2008-06-14 }}, ARB Meeting Notes</ref>
 
==Cosmo3D==
Line 16 ⟶ 17:
 
==OpenGL++==
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.<ref name=ARB/> 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.<ref>{{Cite web|url=http://www.mrpowers.com/Papers/OpenGLPlus/OGLARB.htm|title="Meeting Notes, February 17-19, 1997"|access-date=2008-05-05|archive-date=2008-02-27|archive-url=https://web.archive.org/web/20080227042753/http://www.mrpowers.com/Papers/OpenGLPlus/OGLARB.htm|url-status=live}}</ref> Development continued throughout 1997 including several distributions of the [[API]]. However, the ARB notes "There's been lots of work, but relatively little communication."<ref>[{{Cite web |url=http://www.opengl.org/about/arb/meeting_notes/notes/OpenGL++_notes_6-3-97.html |title="OpenGL ++ ARB Interest Subcommittee Meeting Notes"] |access-date=2008-05-05 |archive-date=2008-05-16 |archive-url=https://web.archive.org/web/20080516080031/http://www.opengl.org/about/arb/meeting_notes/notes/OpenGL++_notes_6-3-97.html |url-status=live }}</ref>
 
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.<ref name=ARB/> 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.<ref>[{{Cite web |url=http://www.opengl.org/about/arb/meeting_notes/notes/OpenGL++_notes_9-8-97.html |title="OpenGL ++ ARB Interest Subcommittee Meeting Notes, September 8, 1997"] |access-date=May 5, 2008 |archive-date=May 16, 2008 |archive-url=https://web.archive.org/web/20080516080222/http://www.opengl.org/about/arb/meeting_notes/notes/OpenGL++_notes_9-8-97.html |url-status=live }}</ref><ref>{{Cite web|url=http://www.vidimce.org/college/summer97/|title="Skimmer in OpenGL++ Maze in OpenGL++"|access-date=2008-05-05|archive-date=2009-01-07|archive-url=https://web.archive.org/web/20090107023301/http://www.vidimce.org/college/summer97/|url-status=live}}</ref>
 
==At the end==
Line 27 ⟶ 28:
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 graphics API|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 license|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==