TweetFollow Us on Twitter

Nov 00 Online

Volume Number: 16 (2000)
Issue Number: 11
Column Tag: MacTech Online

Online

by Jeff Clites <online@mactech.com>

A few months ago we covered Quartz, Mac OS X's new 2D graphics technology based on the imaging model of Adobe's PDF. Quartz will be responsible, directly or indirectly, for most of what the user sees on the screen. What we didn't emphasize directly is that Quartz is 2D-only. Under Mac OS X, 3D graphics will be based on OpenGL. So what's OpenGL?

OpenGL is in, QuickDraw 3D is out

OpenGL is a 3D graphics library developed by SGI (then called Silicon Graphics). It's a high-performance, cross-platform library, available on Mac OS 9, Mac OS X, Windows, and many Unix variants, and many video cards provide hardware acceleration. It is the library of choice for sophisticated 3D development, most notably the gaming industry. In particular, OpenGL is the basis if id software's Quake games, and according to the company allows them to develop their products with only a tiny amount of platform-specific code. This is important for the Macintosh community, because it makes it that much more likely that games and other 3D-graphics-intensive software (such as scientific data visualization, CAD, and architectural design packages) will be available.

If you've done any 3D programming on the Macintosh in the past, you probably used QuickDraw 3D, the 3D library on Mac OS 9 and, technically, part of QuickTime (and therefore available on Windows as well). The sad news is that OpenGL is replacing QuickDraw 3D on Mac OS X, not just providing an alternative. The worst part is that, while OpenGL is the industry standard, QD-3D is much easier to use for simple 3D graphics. In fact, you could make the argument that OpenGL has a prohibitive learning curve for anyone wanting to do something simple—for instance, creating a 3D bar graph. It has a large procedural API, and it's yet another conceptual barrier you have to cross to get your application written. It also lacks QD-3D's elegant object-oriented (though still C-based) API, and well as its file format for storing 3D objects. On the other hand, you could make a strong counterargument that "simple" uses of 3D graphics are few and far between, and somewhat of an oxymoron—when's the last time you saw 3D graphics outside of a game, a screen saver, or a splash screen? In this light, there are certainly more people cheering the availability of OpenGL than are mourning the loss of QD-3D, but it would have been nice to retain an easy-to-use, high-level API, possibly layered on top of OpenGL. Although they seem to fit well together, there's no indication that Apple will go this route, and if there really are very few developers using QD-3D, it makes sense not to devote the resources to it.

Enter Quesa

Now the good news. The good news is Quesa, a third-party, open-source (LGPL) effort to recreate QD-3D from scratch—in other words, and independent library which is API-compatible with QD-3D. This approach is really a win-win situation for the Macintosh community, because it frees Apple from the burden of maintaining an API which may not be widely used, yet it will still be available to those who need it, for as long as anyone is interested enough in it to maintain it. The needs-based focus of many open-source projects is clearly present in Quesa, which was started because its founder wanted to be able to run his 3D screen saver on Mac OS X. The project is under active development, and in fact is mostly complete at this point. As a side benefit of the open-source approach, it is now truly cross-platform, available now on Mac OS 9, Mac OS X, Windows, and Linux, and coming to the BeOS as well. And as you might expect, Quesa can run on top of OpenGL, and so it will benefit from OpenGL hardware acceleration. As mentioned above, QD-3D (and hence Quesa) is object-oriented although written in C. This is interesting from a design standpoint, and is similar in spirit to Apple's new CoreFoundation API, which gives C-based access to key data types and APIs which originated in Cocoa. You can read more about Quesa's structure on its documentation page.

Quesa Resources

If you are moving into 3D graphics, there are several places you can start in order to get up to speed. If you are interested in the QD-3D/Quesa approach, you'll get a good overview from a series of articles which originally appeared in Apple's develop magazine, and you'll also want to become familiar with Apple's QD-3D documentation, which is available through the QuickTime section of their developer web site. Next, of course, you should take a look at Quesa itself, and download the libraries or source code. There is an active Quesa mailing list, which you'll want to subscribe to, as Quesa is still evolving and there are sure to be discussions of current problems and future directions. You might also want an overview of how QD-3D and OpenGL compare, so that you can make an informed choice about which approach you want to take. You can start by checking out an article "Must-See 3-D Engines" from BYTE Magazine, which compares OpenGL, QD-3D, and Direct3D, and then take a look at the information and resources in a past MacTech Online column from March 1998, written by my predecessor. Both of these are somewhat old and may no longer be accurate in their details, but they'll give you a feel for how the APIs differ in their approaches as well as their consequent strengths and weaknesses. Also, there is an FAQ, as well as several link lists which you can consult to find further information.

OpenGL Resources

OpenGL itself is an open standard, and the hub of information about this library is at the OpenGL home page. Here you'll find an overview for developers, links to tutorials, and information about the large assortment of books available on OpenGL (including the reference standards The OpenGL Programming Guide: The Official Guide to Learning OpenGL and OpenGL Reference Manual). As I mentioned above, OpenGL has a large API with a significant learning curve, but it is probably worth the effort if you plan to do hard-core 3D. To make your job a little easier, read up on GLUT, the OpenGL Utility Toolkit. It's a simplified, window-based API which is geared toward those learning OpenGL or using it to writer smaller programs. (GLUT does ship with Apple's OpenGL implementation, by the way.) You can find links to additional resources at the site of the Mesa project, which is an independent library with an OpenGL-compatible API. If you just want to get a flavor for the OpenGL API, try out a recent article on the O'Reilly Network which describes how to use OpenGL to simulate a black hole (really), and also links to additional introductory articles. Finally, keep an eye on Apple's sample code pages for examples of using OpenGL from Cocoa and Carbon, and download the SDK to get you started.

3D Graphics Foundations

Before you dive into a particular API, you may want to get a feel for the field of 3D graphics in general. If you've never worked with it before, there's quite a bit of conceptual background you'll need, and if you plan to work with it extensively there is also quite a bit of math. The classic text is Computer Graphics : Principles And Practice by Foley, Feiner, and Van Dam (ISBN 0201848406), and it is thorough and dense, covering both 2D and 3D graphics. For some lighter reading try the two book's by Jim Blinn, Jim Blinn's Corner: A Trip Down the Graphics Pipeline (ISBN: 1558603875) and Jim Blinn's Corner: Dirty Pixels (ISBN: 1558604553). They're not a full curriculum but they will give you a feel for some of the interesting and often intricate parts of the field.

3D and Cocoa

Another "interesting" facet of the move to OpenGL for Mac OS X is that we seem to be without a Cocoa-based API for 3D graphics. Certainly, you can use OpenGL from within Cocoa applications—Objective-C was designed to be an extension to ANSI C, so there is no technological barrier to using a C-based API from within a Cocoa application, but it would be more convenient to have a fully object-oriented API to work with, and developers are likely to create their own object-based wrappers for the parts of the API they are using. It would be nice for someone to do this once and for all, and develop a higher-level Cocoa-based library that everyone could use. There is some hope for such an animal as part of the MiscKit project. The MiscKit is a collection of Cocoa-based classes and utilities, assembled under an open-source model before "open source" became a household term. There are all kinds of useful tidbits in the MiscKit, although they are still in the process of being updated for the current Cocoa libraries (as most of the Kit was developed for NEXTStep or OpenStep). Of immediate relevance is something called the 3DKit, which was originally developed by NeXT and later transferred to the MiscKit maintainers (it remains a logically separate project). There appear to be a few licensing issues which may need to be worked out, but with a little luck this could serve as a strong starting point for a high-level 3D framework for Cocoa, or at least as an API model for such a framework.

Moving Forward

With OpenGL as a first-class citizen on the Macintosh platform, developers have a real choice of solutions for 3D graphics. It isn't a direct result of the open-sourcing of the core of Mac OS X as Darwin, but open-source projects are becoming more and more relevant (and more an more important) to the platform, and are signaling a cultural shift in the Macintosh community as well as the programming community at large. The Macintosh platform is becoming less and less proprietary, and Macintosh developers are becoming more aware of valuable resources which originated on other platforms, and of their own ability to take part in the process of moving these technologies to the Macintosh. And although it's easy to overlook at first, this is completely in line with the original motivation for the Macintosh, and for Apple as a company: bringing the power of technology to the individual, and letting him make his own choices. Now, more than ever, this means giving this power and choice to the individual developer, as well as to the end user. It's our responsibility to take advantage of this freedom, and participate in driving the platform forward.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

OS X Server 4.1.3 - For OS X 10.10 Yosem...
Designed for OS X and iOS devices, OS X Server makes it easy to share files, schedule meetings, synchronize contacts, develop software, host your own website, publish wikis, configure Mac, iPhone,... Read more
pwSafe 4.1 - Secure password management...
pwSafe provides simple and secure password management across devices and computers. pwSafe uses iCloud to keep your password databases backed-up and synced between Macs and iOS devices. It is... Read more
Kodi 15.0.rc1 - Powerful media center to...
Kodi (was XBMC) is an award-winning free and open-source (GPL) software media player and entertainment hub that can be installed on Linux, OS X, Windows, iOS, and Android, featuring a 10-foot user... Read more
Coda 2.5.11 - One-window Web development...
Coda is a powerful Web editor that puts everything in one place. An editor. Terminal. CSS. Files. With Coda 2, we went beyond expectations. With loads of new, much-requested features, a few surprises... Read more
Bookends 12.5.7 - Reference management a...
Bookends is a full-featured bibliography/reference and information-management system for students and professionals. Access the power of Bookends directly from Mellel, Nisus Writer Pro, or MS Word (... Read more
Maya 2016 - Professional 3D modeling and...
Maya is an award-winning software and powerful, integrated 3D modeling, animation, visual effects, and rendering solution. Because Maya is based on an open architecture, all your work can be scripted... Read more
RapidWeaver 6.2.3 - Create template-base...
RapidWeaver is a next-generation Web design application to help you easily create professional-looking Web sites in minutes. No knowledge of complex code is required, RapidWeaver will take care of... Read more
MacFamilyTree 7.5.2 - Create and explore...
MacFamilyTree gives genealogy a facelift: it's modern, interactive, incredibly fast, and easy to use. We're convinced that generations of chroniclers would have loved to trade in their genealogy... Read more
Paragraphs 1.0.1 - Writing tool just for...
Paragraphs is an app just for writers. It was built for one thing and one thing only: writing. It gives you everything you need to create brilliant prose and does away with the rest. Everything in... Read more
BlueStacks App Player 0.9.21 - Run Andro...
BlueStacks App Player lets you run your Android apps fast and fullscreen on your Mac. Version 0.9.21: Note: Now requires OS X 10.8 or later running on a 64-bit Intel processor. Initial stable... Read more

Rage of Bahamut is Giving Almost All of...
The App Store isn't what it used to be back in 2012, so it's not unexpected to see some games changing their structures with the times. Now we can add Rage of Bahamut to that list with the recent announcement that the game is severely cutting back... | Read more »
Adventures of Pip (Games)
Adventures of Pip 1.0 Device: iOS iPhone Category: Games Price: $4.99, Version: 1.0 (iTunes) Description: ** ONE WEEK ONLY — 66% OFF! *** “Adventures of Pip is a delightful little platformer full of charm, challenge and impeccable... | Read more »
Divide By Sheep - Tips, Tricks, and Stre...
Who would have thought splitting up sheep could be so involved? Anyone who’s played Divide by Sheep, that’s who! While we’re not about to give you complete solutions to everything (because that’s just cheating), we will happily give you some... | Read more »
NaturalMotion and Zynga Have Started Tea...
An official sequel to 2012's CSR Racing is officially on the way, with Zynga and NaturalMotion releasing a short teaser trailer to get everyone excited. Well, as excited as one can get from a trailer with no gameplay footage, anyway. [Read more] | Read more »
Grab a Friend and Pick up Overkill 3, Be...
Overkill 3 is a pretty enjoyable third-person shooter that was sort of begging for some online multiplayer. Fortunately the begging can stop, because its newest update has added an online co-op mode. [Read more] | Read more »
Scanner Pro's Newest Update Adds Au...
Scanner Pro is one of the most popular document scanning apps on iOS, thanks in no small part to its near-constant updates, I'm sure. Now we're up to update number six, and it adds some pretty handy new features. [Read more] | Read more »
Heroki (Games)
Heroki 1.0 Device: iOS Universal Category: Games Price: $7.99, Version: 1.0 (iTunes) Description: CLEAR THE SKIES FOR A NEW HERO!The peaceful sky village of Levantia is in danger! The dastardly Dr. N. Forchin and his accomplice,... | Read more »
Wars of the Roses (Games)
Wars of the Roses 1.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0 (iTunes) Description: | Read more »
TapMon Battle (Games)
TapMon Battle 1.0 Device: iOS Universal Category: Games Price: $.99, Version: 1.0 (iTunes) Description: It's time to battle!Tap! Tap! Tap! Try tap a egg to hatch a Tapmon!Do a battle with another tapmons using your hatched tapmons! *... | Read more »
Alchemic Dungeons (Games)
Alchemic Dungeons 1.0 Device: iOS Universal Category: Games Price: $.99, Version: 1.0 (iTunes) Description: ### Release Event! ### 2.99$->0.99$ for limited time! ### Roguelike Role Playing Game! ### Alchemic Dungeons is roguelike... | Read more »

Price Scanner via MacPrices.net

Seagate Backup Plus Drives Feature 200GB of C...
Seagate Technology plc has announced that its Backup Plus family of external storage offerings will now include 200GB of OneDrive cloud storage, a major added value, and the addition of Lyve’s photo... Read more
Canon PIXMA MG3620 Wireless Inkjet All-in-One...
Canon U.S.A., Inc. has announced the PIXMA MG3620 Wireless (1) Inkjet All-in-One (AIO) printer for high-quality photo and document printing. Built with convenience in mind for the everyday home user... Read more
July 4th Holiday Weekend 13-inch MacBook Pro...
Save up to $150 on the purchase of a new 2015 13″ Retina MacBook Pro at the following resellers this weekend. Shipping is free with each model: 2.7GHz/128GB MSRP $1299 2.7GHz/... Read more
27-inch 3.5GHz 5K iMac on sale for $2149, sav...
Best Buy has the 27″ 3.5GHz 5K iMac on sale for $2149.99. Choose free shipping or free local store pickup (if available). Sale price for online orders only, in-store prices may vary. Their price is $... Read more
Apple now offering refurbished 2015 11-inch...
The Apple Store is now offering Apple Certified Refurbished 2015 11″ MacBook Airs as well as 13″ MacBook Airs (the latest models), available for up to $180 off the cost of new models. An Apple one-... Read more
15-inch 2.5GHz Retina MacBook Pro on sale for...
Amazon.com has the 15″ 2.5GHz Retina MacBook Pro on sale for $2274 including free shipping. Their price is $225 off MSRP, and it’s the lowest price available for this model. Read more
Finally Safe To Upgrade To Yosemite’?
The reason I’ve held back from upgrading my MacBook Air from OS X 10.9 Mavericks to 10.10 Yosemite for nearly a year isn’t just procrastination. Among other bugs reported, there have been persistent... Read more
Logo Pop Free Vector Logo Design App For OS X...
128bit Technologies has released of Logo Pop Free 1.2 for Mac OS X, a vector based, full-fledged, logo design app available exclusively on the Mac App Store for the agreeable price of absolutely free... Read more
21-inch 1.4GHz iMac on sale for $999, save $1...
B&H Photo has new 21″ 1.4GHz iMac on sale for $999 including free shipping plus NY sales tax only. Their price is $100 off MSRP. Best Buy has the 21″ 1.4GHz iMac on sale for $999.99 on their... Read more
16GB iPad mini 3 on sale for $339, save $60
B&H Photo has the 16GB iPad mini 3 WiFi on sale for $339 including free shipping plus NY tax only. Their price is $60 off MSRP. Read more

Jobs Board

Frameworks Engineer, *Apple* Watch - Apple...
**Job Summary** Join the team that is shaping the future of software development for Apple Watch! As a software engineer on the Apple Watch Frameworks team you will Read more
Mobile Payments Counsel, *Apple* Pay (digit...
**Job Summary** Apple is looking for an atto ey to join Apple 's Legal Department to support Apple Pay. **Key Qualifications** 4+ years of relevant experience Read more
*Apple* Solutions Consultant - Retail Sales...
**Job Summary** The ASC is an Apple employee who serves as the Apple business manager and influencer in a hyper-business critical Reseller's store which delivers Read more
Partner Marketing Manager, Merchant- *Apple*...
**Job Summary** The Apple Pay partner marketing team is looking for a marketing manager to develop and drive US marketing programs with our merchant partners. The right Read more
*Apple* Solutions Consultant - Retail Sales...
**Job Summary** As an Apple Solutions Consultant (ASC) you are the link between our customers and our products. Your role is to drive the Apple business in a retail Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.