Fahrenheit graphics APIFahrenheit was an effort to create a unified API for 3D computer graphics. It was designed by Microsoft, HP and SGI to unify Direct3D and OpenGL. Much of the original Fahrenheit project was adbandoned, and SGI eventually gave up on attempting to work with MS. In the end only the scene graph portion of the Fahrenheit system was released, now known as XSG, which disappeared shortly after release.
Microsoft had initially licensed OpenGL from SGI to be put into their Windows NT operating system as its basic 3D system, at the time OpenGL was rapidly becoming the de-facto 3D standard on workstations, and MS was attempting to position NT as a workstation-class system.
At the time, the mid-1990s, Microsoft was also investing heavily in a new project aimed at producing tile rendering hardware that they believed would lead to an entirely new level of performance for "low end" machines like PCs. OpenGL's API was not well suited to describing a tile based scene, and a parallel effort was underway to produce a new API dedicated to supporting the new hardware.
The new API would actually ship first, as Direct3D. Just as OpenGL was not well suited to a tile-based system, Direct3D was not well suited to anything but a tile based system – which basically meant "the entire market" of 3D video cards that were just starting to become common. This left MS in an uncomfortable position, OpenGL was too complex to be supported on common cards, and DirectX's architecture put it at odds with that same hardware.
Some sort of superset API was an obvious development. In late 1997 both SGI and Microsoft started work on a new system to combine the features of OpenGL and Direct3D into a single "scalable" system, called Fahrenheit. Fahrenheit would include a new scene graph based API that would work on top of either existing system, with no performance penalty when converting down to the underlying system. At the same time, Fahrenheit would offer considerably better high-level interfaces for a more robust object oriented development environment.
Fahrenheit became the primary focus of both SGI and Microsoft. SGI dropped work on a number of ongoing projects in favour, including Open Inventor, Cosmo3D and OpenGL++, which was being developed by SGI Intel and IBM. A project to generalize the OpenGL scene graph, the Scene Graph API, was then used as the basis for the scene graph of Fahrenheit. Two packages designed to help CAD software to render large, SGI's OpenGL Optimizer and HP's OpenModel, formed the based of the Fahrenheit "Large Model" extensions. These took advantage of hardware acceleration to cull occluded graphics primitives, and provided topology-maintaining view-dependent level-of-detail rendering for higher-order (non-triangulated) surfaces.
In the end, little came of the project. SGI, worried about the encroachment of NT into its Unix workstation market, was trying to position itself as the natural 3D partner for developers on MS platforms, but were never able to do this and today are a shadow of their former selves. MS in the meantime continued to develop Direct3D to the point where it included all of the low end functionality of OpenGL, and then cut their ties with SGI completely. OpenGL support was dropped from Windows 2000.
As compared to Open Inventor or Iris Performer, the design of the XSG scene graph included some novel ideas. The composition primitives and traversal methods allowed applications to construct scenes in a manner best suited to the structure of the data being visualized, but then to apply a scene graph optimizer to restructure the scene for more efficient rendering without changing the scene's appearance. Pipelined rendering allowed a multithreaded application to construct the scene, cull its primitives, and render it in different threads (borrowing from the Performer app-cull-draw pipeline). The representation of primitive scene data was optimized to minimize the amount of data stored so as to avoid completely duplicating it on a thread-by-thread basis.
Scene Graph was released as XSG in June 2000. No new versions were ever released, and all of the pages related to either Fahrenheit or XGS on both the Microsoft and SGI web pages have since disappeared.