Reconcile3D

Reconcile3D turns a point in 3D space into an x, y position in the camera. The 3D point is controlled by the first fields in the properties panel, and by the optional Axis input. The point is projected through the camera to the image and the position of the result is put in XY output. In addition, the absolute 3D point is put in XYZ output (this is only useful if there is an Axis parent, otherwise it is the same as the input point). This lets you lock a photographed plate to a 3D scene or track.

Note:  The point must be in front of the camera to evaluate correctly.

Inputs and Controls

Connection Type

Connection Name

Function

Input

axis

3D point control coordinates are relative to this optional input.

cam

The viewing camera. This might be created using CameraTracker or imported from a 3rd party application.

img

The image in which you want to position the 3D point.

Output resolution is determined from this image.

Control (UI)

Knob (Scripting)

Default Value

Function

Reconcile3D Tab

Input

3D point xyz

point

0, 0, 0

The x, y, and z values of the 3D point that you want to turn into an xy position in the camera.

Output

create keyframes

N/A

N/A

Click to evaluate the XY output and XYZ output keyframes for a specific frame range.

calculate output live

calc_output

disabled

When enabled, the output values update dynamically.

XY output

output

0, 0

The x and y values of the 3D point projected by the camera to the image. The size of the output image is controlled by the format of the img input.

XYZ output

outputxyz

0, 0, 0

The x, y, and z values of the point in 3D space, transformed by the axis input, if applicable.

2D transform

track xy

track

0, 0

A point of interest in the input image on the x and y axes that you want to match with the Camera movement.

offset xy

offset

0, 0

Extra translation of the input image on the x and y axes.

stabilize

stabilize

disabled

Normally the transformation moves the track point to the projected 3D point, thus moving a plate to match a 3D scene. If you check this, the transformation is reversed to remove 3D motion by moving the projected 3D point to the track point.

filter

filter

Parzen

Select the filtering algorithm to use when remapping pixels from their original positions to new positions. This allows you to avoid problems with image quality, particularly in high contrast areas of the frame (where highly aliased, or jaggy, edges may appear if pixels are not filtered and retain their original values).

Impulse - remapped pixels carry their original values.

Cubic - remapped pixels receive some smoothing.

Keys - remapped pixels receive some smoothing, plus minor sharpening (as shown by the negative -y portions of the curve).

Simon - remapped pixels receive some smoothing, plus medium sharpening (as shown by the negative -y portions of the curve).

Rifman - remapped pixels receive some smoothing, plus significant sharpening (as shown by the negative -y portions of the curve).

Mitchell - remapped pixels receive some smoothing, plus blurring to hide pixelation.

Parzen - remapped pixels receive the greatest smoothing of all filters.

Notch - remapped pixels receive flat smoothing (which tends to hide moire patterns).

Lanczos4, Lanczos6, and Sinc4 - remapped pixels receive sharpening which can be useful for scaling down. Lanczos4 provides the least sharpening and Sinc4 the most.

clamp

clamp

disabled

Sets negative intermediate and final results to zero. This will remove ringing around mattes when using a filter that has negative lobes. When using filters that employ sharpening, such as Rifman and Lanczos, you may see a haloing effect. If necessary, check clamp to correct this problem.

black outside

black_outside

enabled

This renders as black pixels outside the image boundary, making it easier to layer the element over another. If you uncheck this control, the outside area is filled with the outermost pixels of the image sequence.

In most cases, you should keep black outside checked. However, you may want to turn this off for camera shake, or if you want to texture-map or intersect the output with a similar shape.

Note:  Enabling black outside also adds a solid alpha covering the input image area if no alpha is present.

motionblur

motionblur

0

Sets the number of motion blur samples. A value of 1 should produce reasonable results for most sequences.

Increase the value to produce more samples for higher quality, or decrease it to shorten the processing time. The higher the value, the smoother the result.

shutter

shutter

0.5

Enter the number of frames the shutter stays open when motion blurring. For example, a value of 0.5 corresponds to half a frame. Increasing the value produces more blur, and decreasing the value less.

shutter offset

shutteroffset

start

This value controls how the shutter behaves with respect to the current frame value. It has four options:

centred - center the shutter around the current frame. For example, if you set the shutter value to 1 and your current frame is 30, the shutter stays open from frame 29,5 to 30,5.

start - open the shutter at the current frame. For example, if you set the shutter value to 1 and your current frame is 30, the shutter stays open from frame 30 to 31.

end - close the shutter at the current frame. For example, if you set the shutter value to 1 and your current frame is 30, the shutter stays open from frame 29 to 30.

custom - open the shutter at the time you specify. In the field next to the dropdown menu, enter a value (in frames) you want to add to the current frame. To open the shutter before the current frame, enter a negative value. For example, a value of - 0.5 would open the shutter half a frame before the current frame.

shuttercustomoffset

0

If the shutter offset control is set to custom, this field is used to set the time that the shutter opens by adding it to the current frame. Values are in frames, so -0.5 would open the shutter half a frame before the current frame.

Python Tab (These controls are for Python callbacks and can be used to have Python functions automatically called when various events happen in Nuke.)

before render

beforeRender

none

These functions run prior to starting rendering in execute(). If they throw an exception, the render aborts.

before each frame

beforeFrameRender

none

These functions run prior to starting rendering of each individual frame. If they throw an exception, the render aborts.

after each frame

afterFrameRender

none

These functions run after each frame is finished rendering. They are not called if the render aborts. If they throw an exception, the render aborts.

after render

afterRender

none

These functions run after rendering of all frames is finished. If they throw an error, the render aborts.

render progress renderProgress none These functions run during rendering to determine progress or failure.