QuickDraw 3D, or QD3D for short, is a
3D 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 ...
API developed by
Apple Inc.
Apple Inc. is an American multinational technology company headquartered in Cupertino, California, United States. Apple is the largest technology company by revenue (totaling in 2021) and, as of June 2022, is the world's biggest company ...
(then Apple Computer, Inc.) starting in 1995, originally for their
Macintosh
The Mac (known as Macintosh until 1999) is a family of personal computers designed and marketed by Apple Inc. Macs are known for their ease of use and minimalist designs, and are popular among students, creative professionals, and software en ...
computers, but delivered as a cross-platform system.
QD3D was separated into two layers. A lower level system known as RAVE (Rendering Acceleration Virtual Engine) provided a
hardware abstraction layer
Hardware abstractions are sets of routines in software that provide programs with access to hardware resources through programming interfaces. The programming interface allows all devices in a particular class ''C'' of hardware devices to be acce ...
with functionality similar to
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 ...
or cut-down versions of
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 ha ...
like
MiniGL. On top of this was an object-oriented
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 ...
system, QD3D proper, which handled model loading and manipulation at a level similar to
OpenGL++.
[http://legacy.macnn.com/thereview/features/covert/covert10.2.shtml] The system also supplied a number of high-level utilities for file format conversion, and a standard viewer application for the Mac OS.
QD3D had little impact in the computer market, both as a result of Apple's beleaguered position in the mid-1990s, as well as several fateful decisions made by the design team about future changes in the 3D hardware market that did not come true. Apple abandoned work on QD3D after
Steve Jobs
Steven Paul Jobs (February 24, 1955 – October 5, 2011) was an American entrepreneur, industrial designer, media proprietor, and investor. He was the co-founder, chairman, and CEO of Apple; the chairman and majority shareholder of Pixar; ...
took over in 1998, and announced that future 3D support on Mac OS would be based on
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 ha ...
.
OpenGL in the 1990s
The canonical 3D API of the 1990s was OpenGL. This had been written by
SGI and initially closely matched the capabilities of their
workstation
A workstation is a special computer designed for technical or scientific applications. Intended primarily to be used by a single user, they are commonly connected to a local area network and run multi-user operating systems. The term ''worksta ...
systems, operating as a hardware abstraction layer. The OpenGL API consisted mostly of state-setting instructions for setting up drawing modes like the paint color or camera position, and system for sending geometry into the system, normally as meshes of triangles. The combination of these instructions was saved into a
display list A display list (or ''display file'') is a series of graphics commands that define an output image. The image is created ( ''rendered'') by executing the commands to combine various primitives. This activity is most often performed by specialized di ...
which was then rendered to produce the output.
OpenGL lacked many features that are needed to produce a complete 3D program. Saving and loading geometry data, collecting that data into groups to produce model objects, and the control of state was all left to the programmer. This was considered to be an advantage in an era when performance was limited and direct control over these sorts of functions was a route to improved performance.
However, this lack of high-level functionality did make it more difficult to quickly write simple programs, as well as leading to a lack of interoperability. A number of efforts started to provide standardized higher level APIs, like OpenGL++ and (later)
Fahrenheit
The Fahrenheit scale () is a temperature scale based on one proposed in 1724 by the physicist Daniel Gabriel Fahrenheit (1686–1736). It uses the degree Fahrenheit (symbol: °F) as the unit. Several accounts of how he originally defined h ...
, which handled many of the more common bookkeeping tasks like loading geometry from files and providing a display. These standardized
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 ...
systems meant the programmer only had to provide the GUI for the program.
While OpenGL is mostly low-level, it did include some higher-level concepts that were only really used on SGI systems. This led to another series of APIs that removed these features to make it easier to implement on common hardware. The best known of these is
MiniGL, which is not a separate API, but simply a list of those functions in OpenGL that are guaranteed to be supported across all hardware, thus ensuring that a program limiting itself to those calls will run with maximum performance.
QD3D
QD3D was designed from the start to operate on computers with considerably less power than workstations. This led to a concerted effort to cleanly separate the upper and lower layers of the API, with the lower-level RAVE system being closer to MiniGL from the start. This had the advantage of providing a clean and minimal API that could be more easily ported to different hardware.
Since only RAVE needed to be ported, the upper layer APIs could be made as complex as desired, and the QD3D system included a complete scene graph, a standardized model file format, 3DMF, and even basic GUI objects that utilized them. To write a simple application in QD3D, the programmer only had to include a few libraries and then place the GUI elements in their program using
ResEdit or similar tools.
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 phong shading.
The QD3D API was an object-like system based on pure-
C 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.
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. Those applications demanding performance over ease of programming could instead choose to use the RAVE layer directly.
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.
Switch to OpenGL
Good low-level 3D performance relies not only on the programmer to provide efficient models, but high-quality drivers for the hardware as well. Although RAVE was designed to be cross-platform, only hardware developers which supported Mac (
ATI,
NVIDIA
Nvidia CorporationOfficially written as NVIDIA and stylized in its logo as VIDIA with the lowercase "n" the same height as the uppercase "VIDIA"; formerly stylized as VIDIA with a large italicized lowercase "n" on products from the mid 1990s to ...
, and
3dfx
3dfx Interactive was an American technology company headquartered in San Jose, California, founded in 1994, that specialized in the manufacturing of 3D graphics processing units, and later, video cards. It was a pioneer in the field from the ...
) 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.
As OpenGL gained traction on Windows (often credited to
id Software
id Software LLC () is an American video game developer based in Richardson, Texas. It was founded on February 1, 1991, by four members of the computer company Softdisk: game programmer, programmers John Carmack and John Romero, game designer T ...
, 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
Macworld/iWorld was an information technology trade show with conference tracks dedicated to the Apple Macintosh platform. It was held annually in the United States during January. Originally ''Macworld Expo'' and then ''Macworld Conference & Expos ...
in January 1999, Apple announced that neither QuickDraw 3D nor RAVE would be included in
Mac OS X
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
. The company laid off the development staff in June 1999{{Citation needed, date=December 2011, replacing the in-house technology with OpenGL after buying a Mac implementation and key staff from
Conix Enterprises.
After Apple withdrew support for QD3D, an
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
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 ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
). The latest release is from 2008.
Applications
Among hundreds of applications published employing RAVE are:
*
Graphing Calculator
A graphing calculator (also graphics calculator or graphic display calculator) is a handheld computer that is capable of plotting graphs, solving simultaneous equations, and performing other tasks with variables. Most popular graphing calcu ...
in the 1990s, shipped with every Power Macintosh
*
Quake
*
Descent II
''Descent II'' is a 1996 first-person shooter game developed by Parallax Software and first published for DOS by Interplay Productions. For the PlayStation, it is known as ''Descent Maximum''. It is the second installment in the ''Descent ...
*
Unreal
*
Carmageddon 2
''Carmageddon II: Carpocalypse Now'' is a vehicular combat video game, the sequel to ''Carmageddon'', and released in 1998 for Microsoft Windows. The game was developed by Stainless Games and published by Sales Curve Interactive in Europe and In ...
*
Future Cop: LAPD
*
WaterRace
''WaterRace'' is a Macintosh computer game developed and released by French Touch in December 2000. It is a boat racing game with 9 levels (or locations) and 9 corresponding boats and characters.
External links''WaterRace'' homepage (archive)< ...
*
StrataVision 3D
*
Infini-D
*
Bugdom
''Bugdom'' is a 1999 platform video game originally created by Pangea Software for Mac OS 9. It was included with the iMac DV 2000 and later iBook models. The Microsoft Windows version, released in 2000, was developed by Hoplite Research and ...
See also
*
QuickDraw
A quickdraw (also known as an extender) is a piece of climbing equipment used by rock and ice climbers to allow the climbing rope to run freely through protection such as a bolt anchors or other traditional gear while leading.
A quickd ...
*
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 ha ...
*
DirectX
Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with "Direc ...
*
3dfx
3dfx Interactive was an American technology company headquartered in San Jose, California, founded in 1994, that specialized in the manufacturing of 3D graphics processing units, and later, video cards. It was a pioneer in the field from the ...
References
External links
3D Graphics Programming with QuickDraw 3D 1.5.4— QD3D manual (archived)
— prerelease article, June 1995
QuickDraw 3D: Questions and AnswersQuesa project home page
3D scenegraph APIs
Macintosh operating systems APIs