Chrome ball environment maps

Project Page Next project post Post History

Some say taking photos of chrome balls on set is a method that is old and no longer used in VFX. But, this is not strictly true. The technique isn't used as much these days, that is true. And it is older if compared to more modern ways like using a 360° capable camera. But there are still places in which it can be used.

Images of chrome balls are often unwrapped and put into an equirectangular image (something like an HDRI image). We can then put these images on sky domes (or similar objects) that surround our 3D objects and use it to light the scene - a technique called image-based lighting (IBL), and for catching reflections on our 3D objects.

Take for example, a kitchen. Let's say you want to film a robot in your kitchen, doing the dishes (huh - wouldn't that be the thing...). Now, let's say your robot is made of metal and plastic, which is reflective. How do you make the robot reflect the kitchen when it's not real in the first place? How do you light the robot so it looks like it's under the same lighting inside the kitchen? There's a couple of ways to achieve this, but we'll keep it simple here. One way you could do it, is to take a 360° degree panoramic photo and wrap it around your robot scene. And one method of getting (almost) 360° images, is by taking photos of chrome balls.

Here's the thing with chrome balls; they reflect almost everything in the environment. They go to almost right behind the ball. The outer edges are usually fairly distorted, but for most applications that isn't an issue. They're coverage in a single photo is quite large. So, you could take a photo of a chrome ball, unwrap the spherical image reflection, and then use it to light your CG scene.

And just for your info, chrome balls are surprisingly cheap. You can often find them in garden listings on eBay, for example! So, if compositing CG over your camera footage is your goal, consider using this method to create your CG lighting and reflections!

What does unwrapping a chrome ball look like? Here's an example of a chrome ball photo I found from Bernhard Hochenauer's VFX website. It shows a chrome ball that's reflecting the ground, trees and sky. And underneath this, is the same image unwrapped into an equirectangular image using a well-known compositing application (Nuke):

An image of a chrome ball (from Bernhard Hochenauer's VFX website here)

And the image above spherically transformed (unwrapped) from Nuke below:

Now, the unwrap is not perfect, because I've had to adjust the original image and square things off a bit. But for testing here, it will be fine.

Whilst using Nuke to do this is also fine, the limitations of the non-commercial version mean you only get a low resolution output. So, I thought I'd try and make my own unwrapping tool, so I could unwrap chrome ball images in any resolution.

My initial attempts we're pretty unsuccessful. Here's a few examples of what they looked like:

You can see I wasn't getting the unwrap right in my early tests! But after some fiddling about with the numbers, I managed to get one that seemed really close. The image comparison below has the spherical transform from Nuke (left) and my result (right):

Using the slider, you can see they're pretty damn close! Probably the only real difference is in the pixel sampling, something which I haven't implemented yet. Apart from that, they're almost identical.

Now - we just need to apply it to a 3D scene and render! Let's see what that might look like. I used the Stanford Dragon scene I made sometime ago with the rusty metal surface. I then put the unwrapped chrome ball image onto a sky object and used my Hyperion render engine to render it out - cool!

The Stanford Dragon rendered using the spherically unwrapped chrome ball image to light the scene

You can see the reflections on the dragon's rusty metal surface, and the image covering the background behind the object. And just for reference, here's a viewport render of the unwrapped chrome ball image wrapped around a sphere:

Hopefully you can see its usefulness!

Normally I would put a project like this under my Tool Development portfolio. But, I'm not quite sure how to package it up yet. So, I'm going to leave it in my diary for now, and will think about how it could be implemented somewhere. I believe I can use it in the near future, as I am planning on using this technique to light the scenes I want to make for some live-action projects.

Another useful tool for the WickedP tool kit!