QuickDraw 3D, or QD3D for short, is a
3D graphics
3D computer 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 the purposes of perfor ...
API
An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
developed by
Apple Inc.
Apple Inc. is an American multinational corporation and technology company headquartered in Cupertino, California, in Silicon Valley. It is best known for its consumer electronics, software, and services. Founded in 1976 as Apple Comput ...
(then Apple Computer, Inc.) starting in 1995, originally for their
Macintosh
Mac is a brand of personal computers designed and marketed by Apple Inc., Apple since 1984. The name is short for Macintosh (its official name until 1999), a reference to the McIntosh (apple), McIntosh apple. The current product lineup inclu ...
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 acc ...
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 Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
like
MiniGL
MiniGL is an incomplete implementation of the OpenGL specification which implements enough of the API to allow 3D video games in the late 1990s to run with hardware acceleration on contemporary graphics cards, which otherwise provided their own A ...
. On top of this was an object-oriented
scene graph
A scene graph is a general data structure commonly used by vector-based graphics editing applications and modern computer games, which arranges the logical and often spatial representation of a graphical scene. It is a collection of nodes in a g ...
system, QD3D proper, which handled model loading and manipulation at a level similar to
OpenGL++. 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 businessman, inventor, and investor best known for co-founding the technology company Apple Inc. Jobs was also the founder of NeXT and chairman and majority shareholder o ...
took over in 1998, and announced that future 3D support on Mac OS would be based on
OpenGL
OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
.
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 computational science, 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 syste ...
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, also called a command list in Direct3D 12 and a command buffer in Vulkan, is a series of graphics commands or instructions that are run when the list is executed. Systems that make use of display list functionality are called ...
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 scale of temperature, temperature scale based on one proposed in 1724 by the German-Polish physicist Daniel Gabriel Fahrenheit (1686–1736). It uses the degree Fahrenheit (symbol: °F) as the unit. Several accou ...
, which handled many of the more common bookkeeping tasks like loading geometry from files and providing a display. These standardized
scene graph
A scene graph is a general data structure commonly used by vector-based graphics editing applications and modern computer games, which arranges the logical and often spatial representation of a graphical scene. It is a collection of nodes in a g ...
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
MiniGL is an incomplete implementation of the OpenGL specification which implements enough of the API to allow 3D video games in the late 1990s to run with hardware acceleration on contemporary graphics cards, which otherwise provided their own A ...
, 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
ResEdit is a discontinued developer tool application for the Apple Macintosh, used to create and edit resources directly in the Mac's resource fork architecture. It was an alternative to tools such as REdit, and the resource compiler ''Rez.'' Fo ...
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 Corporation ( ) is an American multinational corporation and technology company headquartered in Santa Clara, California, and incorporated in Delaware. Founded in 1993 by Jensen Huang (president and CEO), Chris Malachowsky, and Curti ...
, and
3dfx
3dfx Interactive, Inc. was an American computer hardware 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 f ...
) 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 (originally Macworld) was an information technology trade show with conference tracks dedicated to Apple's Mac platform. It was held annually in the United States during January. Originally ''Macworld Expo'' and then ''Macworld Con ...
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, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
. The company laid off the development staff in June 1999, 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 and view the source code, design documents, or content of the product. The open source model is a decentrali ...
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 ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
). The latest update is from 2023.
[{{cite web , url=https://github.com/jwwalker/Quesa , title=jwwalker/Quesa README , website=]GitHub
GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
, access-date=4 June 2023
Applications
Among hundreds of applications published employing RAVE are:
*
Graphing Calculator Graphing Calculator may refer to:
* Graphing calculators, calculators that are able to display and/or analyze mathematical function graphs
* NuCalc, a computer software program able to perform many graphing calculator functions
* Grapher, th ...
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. A version for the PlayStation (console), PlayStation was released under the title ''Descent Maximum''. It i ...
*
Unreal
Unreal may refer to:
Books and TV
* ''Unreal'' (short story collection), a 1985 book of short stories by Paul Jennings
* ''Unreal'' (TV series), a 2015 television drama series on Lifetime
Computing and games
* ''Unreal'' (video game series), ...
*
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 ...
*
Future Cop: LAPD
*
WaterRace
*
StrataVision 3D
StrataVision 3D is a comprehensive 3D computer graphics software package developed by Strata. Features include primitives-based modeling with texturising, keyframe animation, raytrace and later radiosity rendering under the name of ''Raydiosity ...
*
Infini-D
Infini-D is a discontinued 3D computer graphics program developed by Specular International. It was continued up to version 4.5 by MetaCreations when Specular merged with it. It combined with Ray Dream Studio to create Carrara
Carrara ( ; ; , ...
*
Bugdom
''Bugdom'' is a 1999 platform video game developed and published by Pangea Software for Mac OS 9. It was included with the iMac DV 2000 and later iBook models.
''Bugdom'' was ported to Microsoft Windows by Hoplite Research and released in 2000 ...
See also
*
QuickDraw
QuickDraw was the 2D graphics library and associated application programming interface (API) which is a core part of classic Mac OS. It was initially written by Bill Atkinson and Andy Hertzfeld. QuickDraw still existed as part of the libraries ...
*
OpenGL
OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
*
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 "Direct" ...
*
3dfx
3dfx Interactive, Inc. was an American computer hardware 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 f ...
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 pagePomme project home page— A Quesa fork, used to port Pangea Software's game to modern platforms.
3D scenegraph APIs
Macintosh operating systems APIs