HOME

TheInfoList



OR:

Fahrenheit was an effort to create a unified high-level
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standa ...
for
3D computer graphics 3D computer graphics, or “3D graphics,” sometimes called CGI, 3D-CGI or three-dimensional computer graphics are graphics that use a three-dimensional representation of geometric data (often Cartesian) that is stored in the computer for th ...
to unify
Direct3D Direct3D is a graphics application programming interface (API) for Microsoft Windows. Part of DirectX, Direct3D is used to render three-dimensional graphics in applications where performance is important, such as games. Direct3D uses hardware a ...
and
OpenGL OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa ...
. It was designed primarily by
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
and
SGI SGI may refer to: Companies *Saskatchewan Government Insurance *Scientific Games International, a gambling company *Silicon Graphics, Inc., a former manufacturer of high-performance computing products *Silicon Graphics International, formerly Rac ...
and also included work from an HP-MS joint effort. Direct3D and OpenGL are low-level APIs that concentrate primarily on the rendering steps of the 3D
rendering pipeline In computer graphics, a computer graphics pipeline, rendering pipeline or simply graphics pipeline, is a conceptual model that describes what steps a graphics system needs to perform to  render a 3D scene to a 2D screen. Once ...
. Programs that use these APIs have to supply a considerable amount of code to handle the rest of the pipeline. Fahrenheit hoped to provide a single API that would do most of this work, and then call either Direct3D or OpenGL for the last steps. 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 Scene (from Greek σκηνή ''skēnḗ'') may refer to: Arts, entertainment, and media Music *Scene (subculture), a youth subculture from the early 2000s characterized by a distinct music and style. Groups and performers * The Scene who recor ...
portion of the Fahrenheit system, known as XSG, saw a release and was discontinued shortly afterwards.


History


Background

In the 1990s SGI's
OpenGL OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa ...
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 The OpenGL Architecture Review Board (ARB) was an industry consortium that governed the OpenGL specification. It was formed in 1992, and defined the conformance tests, approved the OpenGL specification and advanced the standard. On July 31, 2006, ...
(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 Windows NT is a proprietary graphical operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems sc ...
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
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 Reality Lab was a 3D computer graphics API created by RenderMorphics to provide a standardized interface for writing games. It was one of the main contenders in the realtime 3D middleware marketplace at the time, alongside Criterion Software's Rende ...
. Their
Reality Lab Reality Lab was a 3D computer graphics API created by RenderMorphics to provide a standardized interface for writing games. It was one of the main contenders in the realtime 3D middleware marketplace at the time, alongside Criterion Software's Rende ...
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 Windows 95 is a consumer-oriented operating system developed by Microsoft as part of its Windows 9x family of operating systems. The first operating system in the 9x family, it is the successor to Windows 3.1x, and was released to manufacturin ...
and game programming. This sparked off a massive debate, both within Microsoft and outside, 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++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
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 Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of pro ...
development environment. The OpenGL++ effort dragged on in the ARB through 1997. Although SGI committed resources to the project in order to provide a sample implementation, it appears they were unhappy with progress overall and complained "There's been lots of work, but relatively little communication." Microsoft in particular had stated in no uncertain terms that they would not be supporting the effort, and SGI felt that their support would be essential for any efforts moving forward.


Announcement

A joint press release in December 1997, followed by an announcement at an ARB meeting in early 1998 by SGI, announced that work on OpenGL++ had been abandoned and SGI had partnered with Microsoft to produce a new system code-named "Fahrenheit". SGI was to provide the primary "mid-sized" API used in most applications, Fahrenheit Scene Graph, as well as a modified version for handling very large models from
CAD Computer-aided design (CAD) is the use of computers (or ) to aid in the creation, modification, analysis, or optimization of a design. This software is used to increase the productivity of the designer, improve the quality of design, improve co ...
applications, Fahrenheit Large Model. Microsoft would provide a new low-level rendering engine for Windows known as Fahrenheit Low Level, essentially a replacement for the Reality Lab-based version of Direct3D.Fahrenheit FAQ
Wayback Machine's archive of SGI's FAQ
The project was officially announced at
SIGGRAPH SIGGRAPH (Special Interest Group on Computer Graphics and Interactive Techniques) is an annual conference on computer graphics (CG) organized by the ACM SIGGRAPH, starting in 1974. The main conference is held in North America; SIGGRAPH Asia ...
1998 for release in late 1999 or early 2000. Fahrenheit became the primary focus of development at SGI. Their MIPS-based workstations were quickly losing the performance lead they had in the early 1990s, and the company was in serious trouble as the average PC slowly but surely encroached on the high-end graphics market. SGI saw Fahrenheit as an exit strategy; once complete they would be able to move to a PC-based lineup while still offering the best development tools for a now universal API. Although no porting work began, toolkits like
Open Inventor Open Inventor, originally IRIS Inventor, is a C++ object-oriented retained mode 3D graphics toolkit designed by SGI to provide a higher layer of programming for OpenGL. Its main goals are better programmer convenience and efficiency. Open Invent ...
and
OpenGL Performer {{unreferenced, date=September 2009 OpenGL Performer, formerly known as IRIS Performer and commonly referred to simply as Performer, is a commercial library of utility code built on top of OpenGL for the purpose of enabling hard real-time visual sim ...
were intended in future to be layered on Fahrenheit, meaning that they could deliver a single fully functional development system for Fahrenheit when it shipped, supporting both their existing customers as well as new ones.


Cancellation

By 1999 it was clear that Microsoft had no intention of delivering Low Level; although officially working on it, almost no resources were dedicated to actually producing code. At the same time Microsoft was in the process of massively investing in DirectX 7.0 (similar to 3.0 largely in name only). Without Low Level, Fahrenheit couldn't be delivered on Windows, and the project stalled. Eventually SGI abandoned work on Fahrenheit and started planning other Scene Graph products which became the last in a series of such projects. By 2000 DirectX 7.0 was in the marketplace, and proving quite popular. DirectX had become the primary API during the rise of 3D gaming in the late 1990s. Microsoft did release Fahrenheit Scene Graph as XSG the same year, but did so with a note saying it would not be supported. No new versions of XSG were ever released, and all of the pages related to either Fahrenheit or XSG on both the Microsoft and SGI web pages have since disappeared. Hardware accelerated OpenGL support was dropped from the included video drivers in
Windows XP Windows XP is a major release of Microsoft's Windows NT operating system. It was released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct upgrade to its predecessors, Windows 2000 for high-end and ...
, although most video card manufacturers deliver their own implementations.


Description

As compared to
Open Inventor Open Inventor, originally IRIS Inventor, is a C++ object-oriented retained mode 3D graphics toolkit designed by SGI to provide a higher layer of programming for OpenGL. Its main goals are better programmer convenience and efficiency. Open Invent ...
or
Iris Performer {{unreferenced, date=September 2009 OpenGL Performer, formerly known as IRIS Performer and commonly referred to simply as Performer, is a commercial library of utility code built on top of OpenGL for the purpose of enabling hard real-time visual sim ...
, the design of the XSG 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. The developer simply did whatever seemed natural, and the system made it work quickly. 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. One of the unique features of XSG was the ability to replace most of the built-in methods for walking the graph with your own versions. Developers could write new functions for quickly traversing their known methods of storing data inside XSG, and then chain them into existing rendering paths. David Blythe, the primary architect of Fahrenheit at SGI, worked at Microsoft on DirectX until 2010. He was also Chief Graphics Software Architect at Intel.


See also

*
Comparison of OpenGL and Direct3D Direct3D and OpenGL are competing application programming interfaces (APIs) which can be used in applications to render 2D and 3D computer graphics. , graphics processing units (GPUs) almost always implement one version of both of these APIs. Exa ...
*
QuickDraw 3D QuickDraw 3D, or QD3D for short, is a 3D graphics API developed by Apple Inc. (then Apple Computer, Inc.) starting in 1995, originally for their Macintosh computers, but delivered as a cross-platform system. QD3D was separated into two layers. ...
*
Microsoft Talisman Talisman was a Microsoft project to build a new 3D graphics architecture based on quickly compositing 2D "sub-images" onto the screen, an adaptation of tiled rendering. In theory, this approach would dramatically reduce the amount of memory bandwid ...


References

{{Reflist, 30em 3D graphics software 3D scenegraph APIs Application programming interfaces DirectX OpenGL