Knowledge (XXG)

QuickDraw 3D

Source 📝

214:, 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. 169:
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
161:
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
128:
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
181:
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
157:
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
185:
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
120:
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
95:
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
22: 144:
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
132:
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)
194:
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
177:
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.
240:, 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 149:, 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. 207:) 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. 186:
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.
225:. 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 460: 348: 417: 370: 92:. The system also supplied a number of high-level utilities for file format conversion, and a standard viewer application for the Mac OS. 137:, which handled many of the more common bookkeeping tasks like loading geometry from files and providing a display. These standardized 455: 69: 134: 356: 272: 174: 423: 226: 374: 182:
demanding performance over ease of programming could instead choose to use the RAVE layer directly.
262: 25: 129:
limited and direct control over these sorts of functions was a route to improved performance.
21: 282: 196: 113: 292: 158:
providing a clean and minimal API that could be more easily ported to different hardware.
58: 221:
in January 1999, Apple announced that neither QuickDraw 3D nor RAVE would be included in
88:
system, QD3D proper, which handled model loading and manipulation at a level similar to
449: 277: 218: 429: 100:
took over in 1998, and announced that future 3D support on Mac OS would be based on
122: 233: 211: 138: 117: 85: 47: 162:
include a few libraries and then place the GUI elements in their program using
89: 267: 97: 54: 29: 314: 287: 141:
systems meant the programmer only had to provide the GUI for the program.
297: 222: 73: 33: 442:— A Quesa fork, used to port Pangea Software's game to modern platforms. 324: 163: 112:
The canonical 3D API of the 1990s was OpenGL. This had been written by
393: 319: 302: 256: 200: 146: 101: 81: 77: 434: 388: 57:(then Apple Computer, Inc.) starting in 1995, originally for their 241: 236:
implementation of the QD3D API was developed externally. Known as
64:
QD3D was separated into two layers. A lower level system known as
20: 439: 371:"The Covert Gaming Corner - Interview: Brian Greenstone, Part 2" 329: 204: 252:
Among hundreds of applications published employing RAVE are:
50: 210:
As OpenGL gained traction on Windows (often credited to
116:
and initially closely matched the capabilities of their
173:
The QD3D API was an object-like system based on pure-
61:
computers, but delivered as a cross-platform system.
424:
QuickDraw 3D: A New Dimension for Macintosh Graphics
68:(Rendering Acceleration Virtual Engine) provided a 259:in the 1990s, shipped with every Power Macintosh 418:3D Graphics Programming with QuickDraw 3D 1.5.4 125:which was then rendered to produce the output. 8: 232:After Apple withdrew support for QD3D, an 84:. On top of this was an object-oriented 32:.2 (1996), showing a QuickDraw-3D-based 340: 16:3D graphics API developed by Apple Inc. 7: 355:. September 25, 1995. Archived from 430:QuickDraw 3D: Questions and Answers 244:). The latest update is from 2023. 14: 461:Macintosh operating systems APIs 426:— prerelease article, June 1995 373:. June 25, 1999. Archived from 349:"3 D: What Happened To Apple?" 121:instructions was saved into a 72:with functionality similar to 1: 477: 70:hardware abstraction layer 420:— QD3D manual (archived) 76:or cut-down versions of 440:Pomme project home page 435:Quesa project home page 389:"jwwalker/Quesa README" 36: 377:on February 16, 2013. 24: 257:Graphing Calculator 108:OpenGL in the 1990s 456:3D scenegraph APIs 166:or similar tools. 37: 227:Conix Enterprises 468: 406: 405: 403: 401: 385: 379: 378: 367: 361: 360: 359:on June 4, 2023. 345: 283:Future Cop: LAPD 190:Switch to OpenGL 46:for short, is a 26:Mac OS Scrapbook 476: 475: 471: 470: 469: 467: 466: 465: 446: 445: 414: 409: 399: 397: 387: 386: 382: 369: 368: 364: 347: 346: 342: 338: 311: 293:StrataVision 3D 250: 192: 155: 110: 17: 12: 11: 5: 474: 472: 464: 463: 458: 448: 447: 444: 443: 437: 432: 427: 421: 413: 412:External links 410: 408: 407: 380: 362: 339: 337: 334: 333: 332: 327: 322: 317: 310: 307: 306: 305: 300: 295: 290: 285: 280: 275: 270: 265: 260: 249: 246: 191: 188: 154: 151: 109: 106: 15: 13: 10: 9: 6: 4: 3: 2: 473: 462: 459: 457: 454: 453: 451: 441: 438: 436: 433: 431: 428: 425: 422: 419: 416: 415: 411: 396: 395: 390: 384: 381: 376: 372: 366: 363: 358: 354: 350: 344: 341: 335: 331: 328: 326: 323: 321: 318: 316: 313: 312: 308: 304: 301: 299: 296: 294: 291: 289: 286: 284: 281: 279: 278:Carmageddon 2 276: 274: 271: 269: 266: 264: 261: 258: 255: 254: 253: 247: 245: 243: 239: 235: 230: 228: 224: 220: 219:Macworld Expo 215: 213: 208: 206: 202: 198: 189: 187: 183: 179: 176: 171: 167: 165: 159: 152: 150: 148: 142: 140: 136: 130: 126: 124: 119: 115: 107: 105: 103: 99: 93: 91: 87: 83: 79: 75: 71: 67: 62: 60: 56: 53:developed by 52: 49: 45: 41: 35: 31: 27: 23: 19: 398:. Retrieved 392: 383: 375:the original 365: 357:the original 352: 343: 251: 248:Applications 237: 231: 216: 209: 193: 184: 180: 172: 168: 160: 156: 143: 131: 127: 123:display list 111: 94: 65: 63: 43: 40:QuickDraw 3D 39: 38: 18: 234:open source 212:id Software 139:scene graph 118:workstation 86:scene graph 48:3D graphics 450:Categories 336:References 268:Descent II 135:Fahrenheit 98:Steve Jobs 55:Apple Inc. 353:Bloomberg 315:QuickDraw 288:WaterRace 170:shading. 59:Macintosh 309:See also 298:Infini-D 223:Mac OS X 90:OpenGL++ 74:Direct3D 34:3D model 28:version 400:June 4, 325:DirectX 217:At the 164:ResEdit 394:GitHub 320:OpenGL 303:Bugdom 273:Unreal 203:, and 201:NVIDIA 147:MiniGL 102:OpenGL 82:MiniGL 78:OpenGL 263:Quake 242:Linux 238:Quesa 80:like 42:, or 402:2023 330:3dfx 205:3dfx 153:QD3D 66:RAVE 44:QD3D 197:ATI 114:SGI 51:API 30:7.5 452:: 391:. 351:. 229:. 199:, 104:. 404:. 195:( 175:C

Index


Mac OS Scrapbook
7.5
3D model
3D graphics
API
Apple Inc.
Macintosh
hardware abstraction layer
Direct3D
OpenGL
MiniGL
scene graph
OpenGL++
Steve Jobs
OpenGL
SGI
workstation
display list
Fahrenheit
scene graph
MiniGL
ResEdit
C
ATI
NVIDIA
3dfx
id Software
Macworld Expo
Mac OS X

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.