January 24th, 2011
I got an idea and started putting some ideas together. I created this simple comp and would like to build upon the look/technique to create a short montage or story of some kind. The idea is still forming in my head.
I created this out of a still photo I took several years ago at school. I like the extreme close up framing and the gritty texturing of the fire hydrant. I’ve been doing a lot of projections and replacements at work, so I got the idea to add a nice soft camera move to the photo.
I started out by modeling the hydrant and fabricating where the camera most likely was. I happened to remember the focal length I used, so that helped a bit. It’s a little tricky doing both at once, but without any reference photos of the object or anything like that, I’ve found it’s best to do both at once with still photos.

After that, I spent some time getting the camera move right and animating the focal plane in my ZBlur node. The ZBlur node utilizes the depth channel generated by Nuke’s scanlineRender node, which makes depth of field a cinch.
February 11th, 2010
Why does an over node in (insert compositing software here) not behave like I think it should?
I get asked this question a lot, so I thought I’d answer it here:
The answer is in the math. Over is defined as an expression: A+B(1-a). A is the rgb values of image A. B is the rgb values of image B. a is the alpha of image A and b, while not used in an over, is the alpha of image B.
take these two images:
![]() |
![]() |
Our goal is to put the teapot, (image A) over the grass (image B). To do this, we need an alpha channel of image A to cut out the teapot:

Simple enough right? If you just plug in the teapot with its alpha channel over the grass, we should see just that, right? wrong! you will see this:

Here’s the problem: A+B(1-a). Let’s consider a point in the middle of the teapot. It as an rgb value greater than 0. it also has an alpha value of 1. therefore, A+B(1-1)=A. That’s great. we got just A. Now let’s consider a point we expect to be just grass. it also has an rgb value greater than 0, but an alpha value of 0. therefore, A+B(1-0)=A+B. Oh no! we didn’t want A+B. that means, we’re adding the rgb values together, which in this example produces a gray tint over the grass since we’re adding that gray value behind the teapot to the grass. The only case where this works is if the rgb of A is 0 where the alpha of A is also 0 since 0+B(1-0)=B.
In order to get the result we expect, we must first premultiply A by its alpha channel. This is expressed like this: A*a. Then, plug that in to the over expression and you get A*a+B(1-a). Now take the point over the grass again. plug everything in and you get 0+B(1-0)=B. Yes! That’s exactly what we wanted!

That’s why you have to premultiply to use over correctly.
God Rays on the Road
February 23rd, 2011
This is another small project along the same lines as my previous post. Originally a still photo, I split up the image into layers and projected each onto cards in 3D space. By utilizing some great DCRaw Plugins for Nuke, developed by Jack Binks, I was able to use the full dynamic range of the original photo to introduce some great blooming effects.
The J_Ops plugins allow you to read and manipulate most RAW file formats produced by digital cameras right in Nuke! Previously, you’d have to open and “develop” the photos using another piece of software in order to convert it into a more common format for use in Nuke. This functionality exists in Adobe Photoshop and Lightroom and generally, works pretty well. I’ve found, however, that a lot of the dynamic range in the photo gets implicitly clamped due to colorspace conversion, even when saving in a 16-bit format. Now, I’ll be the first to admit that I’m probably missing something in the Photoshop process, but since I’d always rather work in Nuke, I now have no reason to ever use photoshop for VFX work involving still photos. Here’s the original photo
Jack Binks’ J_Ops plugins can be found at www.nukepedia.com and on his awesome blog at major-kong.blogspot.com
Tags: Compositing, Projection
Posted in Comments | No Comments »