Apple's recent release of Mac OS X 10.6 Snow Leopard sees some of the operating system's most significant updates to 3D functionality in years, with extended 64-bit support, pervasive multi-threading via Grand Central Dispatch and a wider role for GPUs via OpenCL among the new features. Here, independent developer Chilton Webb tells 3D World what these changes mean for 3D artists and software publishers alike.
Read more on Snow Leopard‘s impact on 3D in 3D World issue 122. To order your copy, visit www.myfavouritemagazines.co.uk
3DW: How much faster do you think your apps will run in Snow Leopard?
CW: That‘s a hard call to make. I think the numbers thrown around for most memory-intensive apps are around a 10–15% increase. That‘s across the board, just for moving to a 64-bit version of an app.
If you‘re currently running a 64-bit Mac app in Leopard on a system with 2GB of actual RAM, then the OS (which will load both 32- and 64-bit versions of its frameworks) can easily push you into virtual memory land with just a few apps like the currently 32-bit version of Photoshop open. So right now, you can incur a bit of a performance hit when you run a 64-bit app on a Mac. It‘s not much of one, and it‘s actually just a factor of available real memory more than anything else, but it can happen. While that might not pile on an additional percentage increase, you‘d keep on truckin‘ at your current speed. Before, you‘d have an impressive drop in speed. So for those users, Snow Leopard will be a no-brainer.
3DW: How useful are the new features of Snow Leopard, and how do they compare to similar tools on Windows?
CW: Snow Leopard really doesn‘t add any new features to the OS: it‘s more a completion of what Apple started with Leopard. To the user, it will hopefully look and feel almost identical. But everything will run a lot faster. Unfortunately, my knowledge of Windows programming does not include any of the new stuff in Windows 7, so I‘m frankly not in the know on that one.
In order to take advantage of the Snow Leopard specific APIs, your whole threading architecture has to be wrapped around Cocoa memory and thread management. Most 3D apps out there right now are heavily C and C++ based, not Objective-C. So to see a real increase, those apps will need to be rethought a bit.
To get to 64-bit on the Mac, those apps that do all their GUI and all their basic processing in OpenGL and C++ had it easy. The ones that had a harder time getting there would be those that rely heavily on Carbon window management or Carbon application design. But that‘s a massive topic unto itself.
Ironically, those that made the transition to 64-bit Cocoa easily did so by sidestepping some of the very things that Snow Leopard can really help with. Most of them had their own data types, and they used pthreads or something similar to handle threading.
Regarding third-party cross-platform frameworks, my assumption is that as more 3D companies adopt them, they‘ll be under increasing pressure to move to NSOperation for their threading under the hood, as that‘s what their clients are going to start demanding. And that‘s a good thing.
3DW: Does Snow Leopard, following news of Quadro FX cards for the Mac Pro, mark parity between Mac and Windows machines as 3D workstations?
CW: No, the Windows operating system continues to hold that platform back.
What did you think I‘d say here? I‘m a Mac guy ;-)
I think it shows that Nvidia is finally taking Apple very seriously. That should speak volumes about what they think of the direction Apple is taking things. Whether others in the industry see the meaning of that… that‘s another question entirely.
While I think this shows a renewed devotion to Apple, I don‘t think this is the tipping point. But I can tell you were I suspect that tipping point might be…
Some 3D software company will realise that there are massive university-owned XGrid farms out all over the world, which will all be running the latest version of Snow Leopard Server Edition in about a week. Some of those server farms dwarf many commercial render farms. And you can buy time on a university‘s XGrid system for dirt. They‘re practically giving it away! Despite their massive size and power, most sit idle, most of the time.
So that 3D software company will write a distributed render app for XGrid. And they‘ll give it away, but it will only render files made with their file format. Then one of those universities will catch wind of this. Some underpaid university tech will go online, and see how much a big server farm is charging for time on their server. They‘ll take out their trusty HP calculator (running on their iPhone), and via a little RPN magic, realize that their university‘s giant server farm could be raking in some serious cash, even if they charged a fraction of what the server farms charge! So eager to get that 75 cent raise, he‘ll call up that 3D software company…
The marketing people at said 3D company get wind of this. They realise that this one tiny detail (XGrid compatibility for distributed renders) means that their customers can sidestep the entire question of whether or not to handle rendering in-house or farm it out. For a few bucks, anyone can have the world. And then they remember this new startup 3D animation house they just sold a few seats of their app to. So now they make a call…
A phone call later, the team at that small 3D animation house realises that because of their choice of 3D apps, they now have access to a server farm that would make the major motion picture industry jealous.
That‘s not going to be the kind of secret they‘ll be able to keep for long. The marketing folks at the 3D software company will see to that! A few tweets later, when word gets out that owning app X meant you had access to these massive XGrid clusters all over the world, big changes will start to happen. Apple‘s investment in parallel computing will pay off big time, and there will be a mass migration to the Mac platform by both customers and developers, as the 3D app companies scramble to get their 3D apps rewritten in Cocoa.
Meanwhile, the universities will realize that all they have to do to upgrade their XGrid server farm is invest in a few more graphics cards. Their investment in Snow Leopard site licences will pay off in a huge way. And the GPU manufacturers, like Nvidia, will start seeing a boost in sales from all these Mac users out there, boosting their CPU power by buying more video cards.
It‘s a big, vicious cycle, and it has a glowing white Apple logo in the middle.
3DW: Is there anything you consider missing from Snow Leopard regarding 3D?
CW: I think the single biggest boat that the entire 3D industry missed was Apple‘s QuickDraw3D. Apple tried very hard to create an object file format that could exist in any application, along with text and images, so that you could embed a 3D object in a file, like a pie chart or a 3D model of something you‘re selling. I still hope to see this someday soon, but cross-platform.
Until that happens, 3D software will remain a means to an end, namely a way to create either movies or images. If 3D companies really want to see the 3D industry elevated to the ‘everyone has to have it‘ status that Photoshop currently enjoys, then 3D objects need to become commonplace. Every time Apple release a new version of their OS, I ferret through the docs, hoping to find some something like ‘FBX is now a QuickTime format‘ kind of message. No luck there yet.
Also, Apple spent millions coming up with an interface to handling 3D objects that is fast, natural, and fits in with existing Mac OS paradigms and key combinations. I really wish Apple would standardise on some 3D UI concepts in the OS, or that at least someone would. Using any two 3D applications side by side and trying to figure out why either of them mapped this key to this command, or this action to this result, is an exercise in frustration.
3DW: What do you wish Apple had included – or changed?
CW: I wish they‘d do with OpenGL what they did with QuickTime and the various movie and image formats out there. Once you wrap your head around QuickTime, you can get the source data from anything – a video stream, iSight camera, GIF animation, JPEG… you name it. If you want an image, you tell QuickTime: “Here‘s a file. I don‘t know what‘s in it. Turn it into an image.“ And it does it!
I‘d like the same thing for OpenGL. “Here‘s a file. It‘s from some 3D program. I want its vertices.”
Here‘s some real world stats for Snow Leopard, from my own app. Conjure is not a 3D app, but it does do a few things in OpenGL, and it can push the video card for some of the things it does. It is a 64-bit app, and can work effortlessly with massive data sets. To get it to this point, I used all Cocoa concepts and data types under the hood. Since I was already relying on NSOperation for all of my threading, when I went to build the 64-bit version, I had to fix literally four lines of code, where I‘d inadvertently used a non-Cocoa data type that would change in 64-bit mode. I did that, built it, and had a Snow Leopard compatible 64-bit app a few minutes later. It works great.
The next version of Conjure (likely 4.2) has a number of intensive graphic-related tasks it can perform. It does much heavier lifting than I ever dared to try in 32-bit mode. Running it in Snow Leopard has shown a 30% increase in speed across the board, a 40% increase in speed for some threaded operations, and a 120% increase in speed for some heavier graphics processing operations. So I‘m a huge fan of Snow Leopard now!
Download Conjure and Chilton Webb's other Mac apps here







