22:
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
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
226:
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
460:
356:
455:
423:
69:
374:
134:
182:
demanding performance over ease of programming could instead choose to use the RAVE layer directly.
272:
174:
129:
limited and direct control over these sorts of functions was a route to improved performance.
158:
providing a clean and minimal API that could be more easily ported to different hardware.
8:
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
262:
25:
429:
100:
took over in 1998, and announced that future 3D support on Mac OS would be based on
282:
196:
113:
292:
58:
162:
include a few libraries and then place the GUI elements in their program using
21:
449:
277:
218:
122:
141:
systems meant the programmer only had to provide the GUI for the program.
233:
211:
138:
117:
85:
47:
442:— A Quesa fork, used to port Pangea Software's game to modern platforms.
267:
112:
The canonical 3D API of the 1990s was OpenGL. This had been written by
97:
89:
54:
29:
314:
287:
434:
388:
297:
222:
73:
57:(then Apple Computer, Inc.) starting in 1995, originally for their
33:
236:
implementation of the QD3D API was developed externally. Known as
64:
QD3D was separated into two layers. A lower level system known as
439:
324:
163:
371:"The Covert Gaming Corner - Interview: Brian Greenstone, Part 2"
393:
319:
302:
256:
200:
146:
101:
81:
77:
252:
Among hundreds of applications published employing RAVE are:
241:
329:
204:
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
447:
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.
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
20:
16:3D graphics API developed by Apple Inc.
448:
107:
355:. September 25, 1995. Archived from
430:QuickDraw 3D: Questions and Answers
244:). The latest update is from 2023.
189:
13:
14:
472:
411:
461:Macintosh operating systems APIs
426:— prerelease article, June 1995
373:. June 25, 1999. Archived from
247:
381:
363:
349:"3 D: What Happened To Apple?"
341:
121:instructions was saved into a
72:with functionality similar to
1:
335:
7:
308:
10:
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"
152:
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:
464:
463:
458:
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:
9:
6:
4:
3:
2:
473:
462:
459:
457:
454:
453:
451:
441:
438:
436:
433:
431:
428:
425:
422:
419:
416:
415:
396:
395:
390:
384:
376:
372:
366:
358:
354:
350:
344:
340:
331:
328:
326:
323:
321:
318:
316:
313:
312:
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:
245:
243:
239:
235:
230:
228:
224:
220:
219:Macworld Expo
215:
213:
208:
206:
202:
198:
187:
183:
179:
176:
171:
167:
165:
159:
150:
148:
142:
140:
136:
130:
126:
124:
119:
115:
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
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.