#! /Applications/Nuke6.0v4-32/Nuke6.0v4.app/Contents/MacOS/Nuke6.0v4 -nx
version 6.0 v4
Group {
name ImagePlane
inputs 2
help "This node lets yuo project a texture onto a card to fit the frustum of the connected camera at the reference frame.\n\nThis is useful to either matchmove or stabilise a plate based on a camera rather than 2D tracking data.\n\n"
knobChanged "\nn = nuke.thisNode()\nk = nuke.thisKnob()\n\nif k.name() == 'use_input':\n n\['knob'].setEnabled( not k.value() )\n"
note_font_size 22
addUserKnob {20 "" l User}
addUserKnob {32 knob l "import chan file" t "when importing a chan file instead of hooking up a camera node, make sure to set the corrcet aperture in the CameraKnobs tab before importing the file!" -STARTLINE +DISABLED T "import_chan_button this.CAM_ANIM\nknob this.use_input 0"}
addUserKnob {6 use_input l "use input" t "if checked the camera hooked up to the cam pipe is used\ninstead of the internal one.\nIf unchecked, make sure to set the correct aperture in the CameraKnobs tab before importing the chan file!" -STARTLINE}
use_input true
addUserKnob {4 output t "stabilize - use this to stabilize a plate using the respective match moved camera\nmatch - track an element into the shot based on the camera input" M {stabilize match}}
output match
addUserKnob {3 ref l refFrame t "if the output format is the same as the plate you want to match/stabilize,\nthis will be the frame that will not be modified."}
ref 1
addUserKnob {7 distance t "the distance of the card to the camera.\nIf you have a nodal camera this isn't important\notherwise you need to adjust this to get the required parallax." R 1 10000}
distance 100
addUserKnob {26 "" l output}
addUserKnob {41 format T Card3D1.format}
addUserKnob {41 crop_1 l "black outside" +INVISIBLE T Card3D1.crop}
addUserKnob {6 crop -STARTLINE}
crop true
addUserKnob {41 full_format l "output format" +INVISIBLE T Card3D1.full_format}
addUserKnob {41 proxy_format l "proxy format" +INVISIBLE T Card3D1.proxy_format}
addUserKnob {41 filter T Card3D1.filter}
addUserKnob {20 "" l MotionBlur}
addUserKnob {41 motionblur T Card3D1.motionblur}
addUserKnob {41 shutter T Card3D1.shutter}
addUserKnob {41 shutteroffset l "shutter offset" T Card3D1.shutteroffset}
addUserKnob {41 shuttercustomoffset l "" -STARTLINE T Card3D1.shuttercustomoffset}
addUserKnob {20 "" l CameraKnobs}
addUserKnob {41 rot_order l "rotation order" T CAM_ANIM.rot_order}
addUserKnob {41 translate T CAM_ANIM.translate}
addUserKnob {41 rotate T CAM_ANIM.rotate}
addUserKnob {26 ""}
addUserKnob {41 focal l "focal length" T CAM_ANIM.focal}
addUserKnob {41 haperture l "horiz aperture" T CAM_ANIM.haperture}
addUserKnob {41 vaperture l "vert aperture" T CAM_ANIM.vaperture}
addUserKnob {41 win_scale l "window scale" T CAM_ANIM.win_scale}
addUserKnob {26 ""}
addUserKnob {41 label_1 l label T CAM_ANIM.label}
}
Input {
inputs 0
name CAM
xpos -16
ypos 113
number 1
}
Camera {
inputs 0
display off
selectable false
haperture 9.58
vaperture 5.39
near 0.001
far {{parent.distance*2}}
name CAM_ANIM
xpos -136
ypos 41
}
Switch {
inputs 2
which {{parent.use_input}}
name Switch4
label "internal or connected camera"
xpos -16
ypos 54
}
set N1b845d10 [stack 0]
Camera {
inputs 0
display off
selectable false
rot_order {{"\[topnode parent.input1].rot_order"}}
translate {{"\[topnode parent.input1].translate.x(parent.ref)"} {"\[topnode parent.input1].translate.y(parent.ref)"} {"\[topnode parent.input1].translate.z(parent.ref)"}}
rotate {{"\[topnode parent.input1].rotate.x(parent.ref)"} {"\[topnode parent.input1].rotate.y(parent.ref)"} {"\[topnode parent.input1].rotate.z(parent.ref)"}}
focal {{"\[topnode input1].focal.0"}}
haperture {{"\[topnode input1].haperture.0"}}
vaperture {{"\[topnode input1].vaperture.0"}}
near 0.0001
far {{parent.distance*2}}
win_scale {{"\[topnode input1].win_scale.0"} {"\[topnode input1].win_scale.1"}}
name CAM_STATIC1
tile_color 0x5682e700
gl_color 0x4851e400
label "connected cam\n"
xpos 28
ypos -178
}
Camera {
inputs 0
display off
selectable false
rot_order {{CAM_ANIM.rot_order}}
translate {{CAM_ANIM.translate.x(parent.ref)} {CAM_ANIM.translate.y(parent.ref)} {CAM_ANIM.translate.z(parent.ref)}}
rotate {{CAM_ANIM.rotate.x(parent.ref)} {CAM_ANIM.rotate.y(parent.ref)} {CAM_ANIM.rotate.z(parent.ref)}}
focal {{CAM_ANIM.focal.0}}
haperture {{CAM_ANIM.haperture.0}}
vaperture {{CAM_ANIM.vaperture.0}}
near 0.0001
far {{parent.distance*2}}
name CAM_STATIC
tile_color 0x5682e700
gl_color 0x4851e400
label "internal cam"
xpos -112
ypos -85
}
Switch {
inputs 2
which {{parent.use_input}}
name Switch5
label "internal or connected cam\n\[input this \[knob parent.use_input]]"
xpos 28
ypos -72
}
set N1b8cc250 [stack 0]
Switch {
inputs 2
which {{!parent.output}}
name Switch1
label "match or stabilize"
xpos 177
ypos -72
}
push $N1b8cc250
push $N1b845d10
Switch {
inputs 2
which {{!parent.output}}
name Switch2
label "match or stabilize"
xpos 166
ypos 54
}
Input {
inputs 0
name IMG
xpos 409
ypos -97
}
Card3D {
inputs 3
scaling {{"\[input Switch5 \[value parent.use_input]].win_scale.0"} {"\[input Switch5 \[value parent.use_input]].win_scale.1"} 1}
uniform_scale {{parent.distance}}
pivot {0 0 1}
lens_in_focal {{"\[input Switch5 \[value parent.use_input]].focal"}}
lens_in_haperture {{"\[input Switch5 \[value parent.use_input]].haperture"}}
name Card3D1
label internal
selected true
xpos 409
ypos 54
}
Crop {
box {0 0 {width} {height}}
intersect true
name Crop1
xpos 409
ypos 241
disable {{!parent.crop}}
}
Output {
name Output1
xpos 409
ypos 324
}
end_group