Fahrenheit was an effort to create a unified high-level API for 3D computer graphics to unify Direct3D and OpenGL. It was designed primarily by Microsoft and SGI and also included work from an HP-MS joint effort. Much of the original Fahrenheit project was abandoned, and Microsoft and SGI eventually gave up on attempts to work together. In the end only the scene graph portion of the Fahrenheit system, known as XSG, saw a release, and was discontinued shortly afterwards.
In the 1990s SGI's OpenGL was the de facto standard for 3D computer graphics. Prior to the mid-90s different platforms had used various custom solutions, but SGI's power in the graphics market, combined with the efforts of the OpenGL Architecture Review Board (ARB), led to the rapid standardization of OpenGL across the majority of the graphics workstation market. In the mid-1990s Microsoft licensed OpenGL for their Windows NT operating system as its primary 3D system; Microsoft was positioning NT as a workstation-class system, and OpenGL was required in order to be a real competitor in this space. Initial support was released in Windows NT Workstation version 3.5 in 1994.
Confusing matters was Microsoft's February 1995 purchase of RenderMorphics. Their Reality Lab product was a 3D library written specifically for gaming purposes, aimed primarily at the "low end" market. After renaming it to Direct3D 3.0, Microsoft released it as the primary 3D API for Windows 95 and game programming. This sparked off a massive debate, both in Microsoft and out, about the merits of the two APIs and whether or not Direct3D should be promoted.
Through the mid-90s SGI had been working on a series of efforts to provide a "higher level" API on top of OpenGL to make programming easier. By 1997 this had evolved into their OpenGL++ system, a retained-mode C++ API on top of OpenGL. They proposed that a modified version be used as a single API on top of either OpenGL or a new high-performance low-level API that Microsoft was known to be working on (not based on Reality Lab). This would not only hide the implementation details and make the OpenGL/DirectX war superfluous, but at the same time offer considerably better high-level interfaces for a more robust object oriented development environment.