Making Multi-Layered OpenEXR files with Cinema 4D
With the recent release of Cinema 4D R13, there was one feature that I highly anticipated. That was the ability to write multiple channels into a single EXR frame. Why so important? Well, when you work with 4000+ frames for a sequence and use about 10 passes, that equates to 40,000 frames. Enjoy moving them from drive to drive or re-loading re-rendered assets. Instead, how about we work with just 1 file that contains all the different passes, such as ambient, diffusion, object buffers, etc.
So how do make an OpenEXR file that puts all the channels into one file? Great question! The answer wasn’t as easy as I thought it would be. As my workflow is always going to After Effects to composite the passes together, this is what my output dialog looked like:

As you can see the Multi-Layer file option is grayed out and not available. What gives? Well, it’s an easy enough of an answer, you need to turn off the Save Compositing Project file option if it’s turned on. If it is on, as mine always is, it won’t let you select the Multi-Layer File option. After disabling “Save” on Compositing Project File Section, you can see that you can now make a single OpenEXR with all your render passes:

You’ll just have to save the Compositing Project File 3D data separately. If you need further information about working with OpenEXR and After Effects, visit this article from Adobe. Happy rendering.
Update 2012.26.01
It was asked on twitter by Grischa Theissen @grischatheissen (who you should follow) what the best format to use for OpenEXR. Tim Clapham @hellolux (follow him too, as well as take classes on fxphd.com from him) responded that B44 is built for realtime playback according to official exr docs, and that he uses 16bit float for smaller files unless he really needs 32bit precision.
Shortening property generation code with Objective-C
One thing most Objective-C programmers know, like C, you can declare variables of the same type the long way, such as:
NSString *street1;
NSString *street2;
NSString *city;
NSString *state;
or the preferred short way of:
NSString *street1, *street2, *city, *state;
This is nothing new, but what you may not know, is when you are declaring matching properties, you can declare properties that share the same type in your .h file like this:
@property(nonatomic, retain) NSString *street1, *street2, *city, *state;
and in your .m file you can also do the synthesize statement with mixed vaiable types as:
@synthesize street1, street2, city, state;
If you create classes with a lot of variables, this will seriously cut down on amount of lines used just for standard variable declaration.
Where does the Mac AppStore download temp files to
I was downloading the developer preview of Lion and accidentally connected to my works VPN during the download. That was a major ooops. Afterwards, the Mac App store would only show “An error occurred” with no retry of downloading the file no matter how many times I clicked on the Install button. So digging around, it stores temporary files at:
~/Library/Application Support/AppStore/
I’m sure you know ~ means your user directory and not the drive root.
So to fix that “An Error has occurred” perform the following:
1. Sign out of the Mac App Store (Store Menu -> Sign Out)
2. Quit the Mac App Store app
3. Delete anything underneath ~/Library/Application Support/AppStore/
4. Restart the Mac App Store app
5. Sign into the Mac App Store (Store Menu -> Sign In)
After signing back in, you should see your downloads start over.
Update 2010.02.26
It also would seem there is a debug menu you can do a safer alternative:
1. Open Terminal
2. Enter defaults write com.apple.appstore ShowDebugMenu -bool true
3. Relaunch the AppStore
4. Choose the menu item Debug Menu -> Reset App
5. Choose the menu item Debug Menu -> Check for Available Downloads…
Testing an iAd on an iOS device
Rushing through to figure out how to install the iAd Tester app on your iOS device and test with your local development machine? Me too. Here’s hoping the google gods pointed you in the right direction.
First, a couple of assumptions:
A. You’ve installed Xcode and your iOS device is already setup as a development device
B. You’ve installed iAd Producer
C. The iOS device and Mac are on the same network
Now here are the directions:
1. Open finder and go to /Developer/iAdJSDeveloper/iAdTester-Device/
2. Drag iAdTester to your iTunes Apps directory as shown

3. Sync your device on iTunes and make sure that the iAd Tester app is now on your device.
4. Start up iAd Tester on your device and iAd Producer on your mac.
5. Disconnect your iOS device from its USB connection
6. Start up iAd tester on your iOS device, you will get an initial warning about running this app. This is normal
7. Make sure you have Share Ads Locally from the iAd Producer menu.

8. Choose preferences (cmd+,) from the iAd producer menu on the mac.
9. Click pair device - You may have to restart iAd Tester on your iAd device or restart iAd producer. I’ve found this part to be a little buggy.
10. On your iOS device, you should see a listing under Computers for your Mac as shown:

11. Select your Computer and you’ll be presented with a code to enter. Obviously this code is given to you on your Mac once your chose “Pair Device”.
12. After the pairing, close iAd tester on your iOS device and restart. You should now be able to select your computer serving up iAds and will list any iAds you have created for that device type. If you created an iPad iAd and you paired up an iPhone, you won’t see it on your list.


