Nuke Tips – Card 3D vs Card

card3d_vs_card

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
}

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.