Recent Comments
- Daniel on Rebuilding bad frames using OFlow
- justin.li on Keyframe Reduction script for Nuke
- srikanth on Colour Smear for Nuke (UPDATE v2.0)
- pralhad on Colour Smear for Nuke (UPDATE v2.0)
- Francois Leduc on FrameBlendMerge
CameraSmooth for Nuke
January 17, 2016
THE PROBLEM
For a recent project I had a long steadicam shot that had picked up some high frequency jittering that needed to be removed. Its a problem that the smoothCam tool in Shake / Final Cut was made for, but I needed a solution that worked in Nuke.
There was already a 3D camera that had been tracked by our matchmove department, so I wanted to create something that utilised the virtual camera, rather then using optical flow or some other heavy process. It also needed to be non-destructive to the original camera track – i.e. I should be able to adjust settings to smooth the tracking, but leave the original data intact.
THE SOLUTION
The solution is straight forward. I create a 3D card that travels at a fixed distance in front of our original camera. The camera projects the input footage onto the card. I then duplicate our original camera and apply a smoothing filter to its values – this uses the “integrate” python expression, and there is a great Nukepedia article by Frank Reuter that explains the process. We then render out the card using a ScanlineRender that is connected to our smoothed camera.

THE NUKE NODE
I wrapped this up in a group that has two inputs – the footage to be smoothed and the 3D camera. I created separate knobs for smoothing the translation and rotation of the camera, as one may need to be smoothed more than the other.

Here is the GitHub link for the node – just select the text, copy it then, then paste it into Nuke.
ADDITIONAL CONSIDERATIONS
If you do not have a tracked camera there is always the Furnace F_Steadiness node available in NukeX, which is similar to smoothCam. However, it uses Global Motion Estimation which is processor intensive.



Leave a comment