
Nuke’s default scanline render can be really slow to me IMHO. So whenever you need to arrange maybe a few cards in a shot, I highly recommend using Card3D instead.
The difference that I know is that Card3D can’t interact with other objects in Nuke 3D scene (this is where the regular Card node is actually an actual geometry unlike Card3D).
Even though it can’t interact with the 3D scene, the benefit is Card3D renders much faster compared to ScanlineRender.
So why Card3D?
So if you need to speed up your overall rendering speed, I suggest using Card3D instead of regular Card with ScanlineRender.
Whenever we can reduce render time, I say it is useful to convert select element from Card to Card3D if you can get away with it (subject to your supervisor approval if working in a studio).
Since talk is sweet, here’s the sample script which I created to demonstrate three different scenario. Make sure to cycle between all three with the cache clear in between session for accurate performance.
set cut_paste_input [stack 0]
version 8.0 v5
StickyNote {
inputs 0
name StickyNote1
label Fastest
note_font "Verdana Bold"
note_font_size 16
selected true
xpos -471
ypos 188
}
StickyNote {
inputs 0
name StickyNote2
label Average
note_font "Verdana Bold Bold"
note_font_size 16
selected true
xpos -352
ypos 188
}
StickyNote {
inputs 0
name StickyNote3
label Slowest
note_font "Verdana Bold Bold Bold"
note_font_size 16
selected true
xpos -233
ypos 188
}
Axis2 {
inputs 0
translate {{curve x1 0 x22 -0.4065980911 x54 -0.2656220794 x100 0} {curve x1 0 x22 -0.7621563077 x54 -0.2060000002 x100 0} {curve x1 0 x22 -0.2586901188 x54 -0.2938676178 x100 -0.5860000253}}
rotate {{curve x1 0 x22 25.67839671 x54 9.133486052 x100 0} {curve x1 0 x22 -15.04237662 x54 -7.901400181 x100 1.840142182} {curve x1 0 x22 0 x54 -2.228735549 x100 0}}
name Axis1
selected true
xpos -339
ypos -76
}
Camera2 {
name Camera1
selected true
xpos -336
ypos 17
}
set N369d86b0 [stack 0]
Cube {
inputs 0
display solid+wireframe
render_mode textured+wireframe
rows 3
columns 3
separate_faces false
translate {0.5879999995 0.07999999821 -3.032000065}
uniform_scale 0.5
name Cube1
selected true
xpos -4
ypos 53
}
ColorBars {
inputs 0
name ColorBars1
selected true
xpos -133
ypos -197
}
Card2 {
translate {-0.4099999964 0 -3.140000105}
rotate {0 45 0}
control_points {3 3 3 6
1 {-0.5 -0.5 0} 0 {0.1666666865 0 0} 0 {0 0 0} 0 {0 0.1666666865 0} 0 {0 0 0} 0 {0 0 0}
1 {0 -0.5 0} 0 {0.1666666716 0 0} 0 {-0.1666666716 0 0} 0 {0 0.1666666865 0} 0 {0 0 0} 0 {0.5 0 0}
1 {0.5 -0.5 0} 0 {0 0 0} 0 {-0.1666666865 0 0} 0 {0 0.1666666865 0} 0 {0 0 0} 0 {1 0 0}
1 {-0.5 0 0} 0 {0.1666666865 0 0} 0 {0 0 0} 0 {0 0.1666666716 0} 0 {0 -0.1666666716 0} 0 {0 0.5 0}
1 {0 0 0} 0 {0.1666666716 0 0} 0 {-0.1666666716 0 0} 0 {0 0.1666666716 0} 0 {0 -0.1666666716 0} 0 {0.5 0.5 0}
1 {0.5 0 0} 0 {0 0 0} 0 {-0.1666666865 0 0} 0 {0 0.1666666716 0} 0 {0 -0.1666666716 0} 0 {1 0.5 0}
1 {-0.5 0.5 0} 0 {0.1666666865 0 0} 0 {0 0 0} 0 {0 0 0} 0 {0 -0.1666666865 0} 0 {0 1 0}
1 {0 0.5 0} 0 {0.1666666716 0 0} 0 {-0.1666666716 0 0} 0 {0 0 0} 0 {0 -0.1666666865 0} 0 {0.5 1 0}
1 {0.5 0.5 0} 0 {0 0 0} 0 {-0.1666666865 0 0} 0 {0 0 0} 0 {0 -0.1666666865 0} 0 {1 1 0} }
name Card2
selected true
xpos -133
ypos -69
}
Sphere {
inputs 0
display solid+wireframe
render_mode textured+wireframe
rows 15
columns 15
translate {0.2200000137 0 -2.475007772}
uniform_scale 0.2
name Sphere1
selected true
xpos -5
ypos -44
}
push $cut_paste_input
Roto {
curves {{{v x3f99999a}
{f 0}
{n
{layer Root
{f 0}
{t x44800000 x44428000}
{a}
{curvegroup Bezier6 512 bezier
{{cc
{f 8192}
{px 1
{0 xc0000000}
{x44bef8fd x43e8e800}
{0 x40000000}
{0 0}
{x44b5b8fd x43e4e800}
{0 0}
{0 0}
{x44b8f8fd x43b86800}
{0 0}
{0 0}
{x44c2b8fd x43b6e800}
{0 0}}} idem}
{tx 1 x44df8000 x44553000}
{a bm x41400000 osw x41200000 osf 0 str 1 spx x44800000 spy x44428000 sb 1 tt x40800000}}
{curvegroup Bezier5 512 bezier
{{cc
{f 8192}
{px 1
{0 0}
{x4445b1fa x440c7400}
{0 0}
{0 0}
{x4455f1fa x440b7400}
{0 0}
{xc0000000 0}
{x4452f1fa x43fbe800}
{x40000000 0}
{0 0}
{x4446f1fa x43f86800}
{0 0}}} idem}
{tx 1 x448a1800 x44721000}
{a bm x41400000 osw x41200000 osf 0 str 1 spx x44800000 spy x44428000 sb 1 tt x40800000}}
{curvegroup Bezier4 512 bezier
{{cc
{f 8192}
{px 1
{x40000000 0}
{x44c718fd x4442f400}
{xc0000000 0}
{0 0}
{x44bbd8fd x4443f400}
{0 0}
{0 0}
{x44bf18fd x440ef400}
{0 0}
{0 0}
{x44a8d8fd x4406f400}
{0 0}
{0 0}
{x44aed8fd x4397e800}
{0 0}
{0 0}
{x44ce18fd x4395e800}
{0 0}}} idem}
{tx 1 x44df6000 x44762aab}
{a g x3ec000c0 b 0 osw x41200000 osf 0 str 1 spx x44800000 spy x44428000 sb 1 tt x40800000}}
{curvegroup Bezier3 512 bezier
{{cc
{f 8192}
{px 1
{xc0000000 0}
{x4481d8fd x441c7400}
{x40000000 0}
{0 0}
{x448458fd x4395e800}
{0 0}
{0 0}
{x449398fd x439be800}
{0 0}
{0 0}
{x448e18fd x4400f400}
{0 0}
{0 0}
{x44a358fd x4407f400}
{0 0}
{0 0}
{x44a198fd x4422f400}
{0 0}}} idem}
{tx 1 x44b58aab x44686aab}
{a osw x41200000 osf 0 str 1 spx x44800000 spy x44428000 sb 1 tt x40800000 g x3e800080 r 0}}
{curvegroup Bezier2 512 bezier
{{cc
{f 8192}
{px 1
{0 0}
{x442eb1fa x4418f400}
{0 0}
{x40c00000 0}
{x446db1fa x441cf400}
{xc0c00000 0}
{x40000000 0}
{x4472b1fa x43a6e800}
{xc0000000 0}
{0 0}
{x445db1fa x43a7e800}
{0 0}
{0 0}
{x445831fa x43d5e800}
{0 0}
{0 0}
{x4445b1fa x43d7e800}
{0 0}
{0 0}
{x444431fa x43a6e800}
{0 0}
{0 0}
{x443031fa x43aae800}
{0 0}}} idem}
{tx 1 x448b5800 x44593000}
{a r x3e000080 b 0 osw x41200000 osf 0 str 1 spx x44800000 spy x44428000 sb 1 tt x40800000}}
{curvegroup Bezier1 512 bezier
{{cc
{f 8192}
{px 1
{0 0}
{x439f63f4 x44347400}
{0 0}
{xc0000000 0}
{x43a763f4 x4393e800}
{x40000000 0}
{0 0}
{x4420b1fa x439ae800}
{0 0}
{x40000000 0}
{x441eb1fa x43e5e800}
{xc0000000 0}
{0 0}
{x43ed63f4 x43e5e800}
{0 0}
{0 0}
{x43e863f4 x4419f400}
{0 0}
{0 x40000000}
{x442031fa x44207400}
{0 xc0000000}
{0 0}
{x4419b1fa x443b7400}
{0 0}}} idem}
{tx 1 x4447c000 x44728000}
{a osw x41200000 osf 0 str 1 spx x44800000 spy x44428000 sb 1 tt x40800000 b 0 g 0}}}}}}
toolbox {selectAll {
{ selectAll str 1 ssx 1 ssy 1 sf 1 }
{ createBezier str 1 ssx 1 ssy 1 sf 1 sb 1 tt 4 }
{ createBezierCusped str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ createBSpline str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ createEllipse str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ createRectangle str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ createRectangleCusped str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ brush str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ eraser src 2 str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ clone src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ reveal src 3 str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ dodge src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ burn src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ blur src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ sharpen src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 }
{ smear src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 }
} }
toolbar_brush_hardness 0.200000003
toolbar_source_transform_scale {1 1}
toolbar_source_transform_center {1024 778}
color {0 0.2500038147 1 1}
colorOverlay {0 0 0 0}
lifetime_type "all frames"
motionblur_shutter_offset_type centred
source_black_outside true
createNewTrack {{-1} "-1\t(none)\t-1" "1000\tNew Track Layer\t1000"}
name Roto1
selected true
xpos -344
ypos -262
}
Premult {
name Premult1
selected true
xpos -344
ypos -216
}
Dot {
name Dot1
selected true
xpos -310
ypos -124
}
set N369d8a20 [stack 0]
Dot {
name Dot2
selected true
xpos -200
ypos -124
}
Card2 {
translate {0 0 -2}
control_points {3 3 3 6
1 {-0.5 -0.5 0} 0 {0.1666666865 0 0} 0 {0 0 0} 0 {0 0.1666666865 0} 0 {0 0 0} 0 {0 0 0}
1 {0 -0.5 0} 0 {0.1666666716 0 0} 0 {-0.1666666716 0 0} 0 {0 0.1666666865 0} 0 {0 0 0} 0 {0.5 0 0}
1 {0.5 -0.5 0} 0 {0 0 0} 0 {-0.1666666865 0 0} 0 {0 0.1666666865 0} 0 {0 0 0} 0 {1 0 0}
1 {-0.5 0 0} 0 {0.1666666865 0 0} 0 {0 0 0} 0 {0 0.1666666716 0} 0 {0 -0.1666666716 0} 0 {0 0.5 0}
1 {0 0 0} 0 {0.1666666716 0 0} 0 {-0.1666666716 0 0} 0 {0 0.1666666716 0} 0 {0 -0.1666666716 0} 0 {0.5 0.5 0}
1 {0.5 0 0} 0 {0 0 0} 0 {-0.1666666865 0 0} 0 {0 0.1666666716 0} 0 {0 -0.1666666716 0} 0 {1 0.5 0}
1 {-0.5 0.5 0} 0 {0.1666666865 0 0} 0 {0 0 0} 0 {0 0 0} 0 {0 -0.1666666865 0} 0 {0 1 0}
1 {0 0.5 0} 0 {0.1666666716 0 0} 0 {-0.1666666716 0 0} 0 {0 0 0} 0 {0 -0.1666666865 0} 0 {0.5 1 0}
1 {0.5 0.5 0} 0 {0 0 0} 0 {-0.1666666865 0 0} 0 {0 0 0} 0 {0 -0.1666666865 0} 0 {1 1 0} }
name Card1
selected true
xpos -234
ypos -63
}
set N140389f0 [stack 0]
Scene {
inputs 4
name Scene1
selected true
xpos -224
ypos 32
}
push 0
ScanlineRender {
inputs 3
motion_vectors_type distance
name ScanlineRender1
selected true
xpos -234
ypos 155
}
push $N369d86b0
push $N140389f0
push 0
ScanlineRender {
inputs 3
motion_vectors_type distance
name ScanlineRender2
selected true
xpos -346
ypos 155
}
push $N369d86b0
push $N369d8a20
Dot {
name Dot3
selected true
xpos -434
ypos -124
}
Card3D {
inputs 2
translate {0 0 -2}
name Card3D1
selected true
xpos -468
ypos 156
}
Viewer {
inputs 3
frame 1
input_process false
name Viewer1
selected true
xpos -351
ypos 292
}

