QuickDraw 3D
Encyclopedia
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 provided a high-level API with a rich set of 3D primitives that was generally much more full-featured and easier to develop than low-level APIs such as OpenGL
OpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...

 or Direct3D
Direct3D
Direct3D is part of Microsoft's DirectX application programming interface . Direct3D is available for Microsoft Windows operating systems , and for other platforms through the open source software Wine. It is the base for the graphics API on the Xbox and Xbox 360 console systems...

 . Below this was a cleanly-separated hardware abstraction layer known as RAVE that allowed the system to be ported to new hardware easily. On the downside, QD3D used a number of Apple-specific ideas about how 3D hardware should work, and initially performed poorly due to the lack of hardware acceleration.

Apple abandoned work on QD3D after Steve Jobs
Steve Jobs
Steven Paul Jobs was an American businessman and inventor widely recognized as a charismatic pioneer of the personal computer revolution. He was co-founder, chairman, and chief executive officer of Apple Inc...

 took over in 1998, and announced that future 3D support would be based on OpenGL
OpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...

.

QD3D

QD3D had the disadvantage of running on computers with considerably less power than the SGI
Silicon Graphics
Silicon Graphics, Inc. was a manufacturer of high-performance computing solutions, including computer hardware and software, founded in 1981 by Jim Clark...

 systems OpenGL was designed for. This guided the developers to cleanly separate the system into a high-level and low-level set of APIs, so that the lower levels could be implemented entirely in hardware. Since the high-level API was not intended to run directly on hardware, designers could pack it with as many features as they wanted.

The result was that QD3D offered a considerably richer programming system for developers, one that dramatically reduced the workload for basic applications. QD3D provided functionality not only for storing and manipulating a scene graph, but also added a number of easy to use 3D objects, UI elements, and even input controllers. The suite allowed developers to add 3D support to their applications with ease, in a way that had a consistent UI when compared to other 3D applications using the platform. Apple additionally introduced the 3DMF file format in order to allow developers to exchange 3D models between applications, providing all the needed code for loading and saving 3DMF files.

Additional functionality included a “plug-in” rendering system, which allowed an application to render a scene in a variety of styles. Without changing the model or their code, developers could render the same scene interactively or (with suitable plug-ins) using methods such as ray-tracing or hidden-line.

The QD3D API was an “object-like” system based on pure-C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

 code. The various structures were carefully constructed to contain pointers to other important objects. Objects knew all the drawing state they needed, thereby eliminating code that would normally be needed when developing under OpenGL . For obvious reasons the APIs were also tightly integrated with the Mac OS
Mac OS
Mac OS is a series of graphical user interface-based operating systems developed by Apple Inc. for their Macintosh line of computer systems. The Macintosh user experience is credited with popularizing the graphical user interface...

, allowing the developer to bring up an interactive 3D view in a window with little code. The developer’s task was essentially to provide the models and “behavior” for the world, as opposed to the basic 3D framework that was needed for lower level libraries.

To contrast the two approaches, consider this sort of task that QD3D could directly support:

load the model “human”,
load the style “t-shirt”,
apply “t-shirt” to “human”,
draw

Under OpenGL this task would resemble something more like:

load the model “human”,
load the texture “t-shirt”,
enable the texture “t-shirt”,
draw

On the downside, QD3D’s layering introduced performance issues. For instance, the system stored and automatically set state for every object before drawing. This made development much easier, but also made the performance drop in a way the developer had no direct control over. Under OpenGL the user was forced to handle state themselves, but in doing so could often avoid the majority of state-setting commands and thereby improve performance.

Another area of concern is that the scene graph was hidden from view, and considerable improvements in rendering performance can be made by carefully “culling” the graph to remove those objects that are not in view. Although later releases of QD3D gained the ability to automatically perform visibility culling (based on the grouping of objects in the scene graph), OpenGL’s lack of support for this feature typically forced developers to implement it from the start.

RAVE

In order to deal with the performance-critical rasterization operation, Apple designed QD3D to sit on top of a separate package known as RAVE (Rendering Acceleration Virtual Engine). The result was something much closer to OpenGL — more primitive to program, but with increased control over rendering.

Although RAVE did what it intended to do, the effort was essentially doomed. Good low-level 3D performance relies not only on the programmer to provide efficient models, but high-quality drivers for the hardware as well. This is where RAVE failed. Developers had repeatedly watched the “next big thing” come out of Apple only to see it be killed off in the next company reorganization, and were increasingly wary of putting any effort into supporting Apple’s latest developments. By 1996 the market generally felt Apple was doomed to bankruptcy
Bankruptcy
Bankruptcy is a legal status of an insolvent person or an organisation, that is, one that cannot repay the debts owed to creditors. In most jurisdictions bankruptcy is imposed by a court order, often initiated by the debtor....

, making matters considerably worse. Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

 was at the same time trying to introduce their own similar library, Direct3D
Direct3D
Direct3D is part of Microsoft's DirectX application programming interface . Direct3D is available for Microsoft Windows operating systems , and for other platforms through the open source software Wine. It is the base for the graphics API on the Xbox and Xbox 360 console systems...

 (D3D), and even though QD3D beat it to market and was technically superior, it was soon clear to everyone that it was destined to be ignored in favor of Direct3D.

At the same time the expected market for 3D desktop applications simply didn’t materialize. Most users stayed with their workstation
Workstation
A workstation is a high-end microcomputer designed for technical or scientific applications. Intended primarily to be used by one person at a time, they are commonly connected to a local area network and run multi-user operating systems...

-based modelers for performance reasons, and most other users have limited 3D needs. 3D games, on the other hand, took off at about this time, and drove the widespread availability of consumer-level 3D hardware.

Although RAVE was designed to be cross-platform, only Mac hardware developers (ATI
ATI Technologies
ATI Technologies Inc. was a semiconductor technology corporation based in Markham, Ontario, Canada, that specialized in the development of graphics processing units and chipsets. Founded in 1985 as Array Technologies Inc., the company was listed publicly in 1993 and was acquired by Advanced Micro...

, NVIDIA
NVIDIA
Nvidia is an American global technology company based in Santa Clara, California. Nvidia is best known for its graphics processors . Nvidia and chief rival AMD Graphics Techonologies have dominated the high performance GPU market, pushing other manufacturers to smaller, niche roles...

, and 3dfx
3dfx
3dfx Interactive was a company that specialized in the manufacturing of 3D graphics processing units and, later, graphics cards. It was a pioneer in the field for several years in the late 1990s until 2000 when it underwent one of the most high-profile demises in the history of the PC industry...

) produced drivers for it. This left any comparison between QD3D and alternative APIs one-sided, as outside of the Mac QD3D was forced to fall back to a software RAVE implementation.

Switch to OpenGL

As OpenGL gained traction on Windows (often credited to id Software
Id Software
Id Software is an American video game development company with its headquarters in Richardson, Texas. The company was founded in 1991 by four members of the computer company Softdisk: programmers John Carmack and John Romero, game designer Tom Hall, and artist Adrian Carmack...

, who championed the API over D3D), hardware developers were increasingly designing future hardware against the future feature set planned for Microsoft’s D3D. Through its extension mechanism OpenGL was able to track these changes relatively easily, while RAVE’s feature set remained relatively fixed.

At the Macworld Expo in January 1999, Apple announced that neither QuickDraw 3D nor RAVE would be included in Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

. The company laid off the development staff in June of 1999, replacing the in-house technology with OpenGL after buying a Mac implementation and key staff from Conix.

Today there remains no standard high-level API for 3D graphics. Several attempts have been made, including OpenGL++ and the SGI/Microsoft Fahrenheit graphics API
Fahrenheit graphics API
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...

, but none of these have made it to production.

After Apple withdrew support for QD3D, an Open Source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 implementation of the QD3D API was developed externally. Known as Quesa, this implementation combines QD3D’s higher level concepts with an OpenGL renderer. As well as cross-platform hardware acceleration, this library also allows the use of the QD3D API on platforms never supported by Apple (such as Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

).

Applications

Applications published employing RAVE include
  • Graphing Calculator
    NuCalc
    NuCalc, also known as Graphing Calculator, is a computer software tool made by the company Pacific Tech. The tool can perform many graphing calculator functions. It can graph inequalities and vector fields, as well as functions in two, three, or four dimensions. It supports several different...

     in the 1990s, shipped with every Power Macintosh.
  • Quake
  • Unreal
    Unreal
    Unreal is a first-person shooter video game developed by Epic MegaGames and Digital Extremes and published by GT Interactive in May 1998...

  • Carmageddon 2

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK