More 3D plugins for Nuke

More 3D tomfoolery comes to Nuke with two suites of plugins by Frederich Munch.

Geometry Tools is a general 3D asset creation and modification suite. Dynamics is a rigid and soft body simulation tool set.

When I played with J_Ops Mullet I quickly realised how limited I am as I need a 3D applications to create the assets for me. For example, in order to simulate a window breaking, I need to somehow have all the little pieces that will break out of the window. With Geometry tools all this can be done inside Nuke.

The example below shows a Cube being exploded. I used PolyShards from Geometry Tools to break a cube up into pieces. I then used Mullet’s rigid body dynamics to add gravity to the scene. Took five minutes.

You can grab the script for the above at the end of the post by copy-pasting into your Nuke DAG (you’ll need both J-Ops and Geometry Tools installed).

The Nuke 3D arsenal is getting very comfortable all of a sudden. Everyday stuff looks more and more doable inside Nuke without the need for 3D software. How convenient. Here’s a run down by the author:

Geometry Tools

Surprisingly, creates and modifies geometry:

  • Create 3D Text, 3D Shapes (from roto curves), Voronoi-shards, and copy geometry onto points or with an accumulated transform.
  • 3D Curves that you can sweep, revolve, or create an axes on.
  • Boolean operations, face/edge extrusion, Catmull-Clark subdivision, face removal/poking and point merging.
  • Test geometry for intersection with an ellipsoid, trapezoid, or cylinder for: modifying attributes with values or expressions, and applying Transform, Bend, Bulge, Taper, and Twist deformers.

Dynamics

Oddly enough, allows rigid and soft body simulations in Nuke.

  • Integration with particles to trigger emission when objects collide or simulate geometry emitted from a stream.
  • Achieve realtime playback with a massive amount of objects (30,000 for example).
  • Simulate deforming geometry and concave objects.
  • Animatable properties and constraints (point, hinge, spring, soft pin, soft to rigid).
  • Baking of both rigid and soft bodies (invokable in UI and command-line).
  • Bake object transforms to Axis nodes.

I had a good play with Geometry, and man, you can have whole days disappear from your life very quickly. A lot of fun overall.

I haven’t had a play with Dynamics yet, but it sounds like it can do everything Mullet can and then some. That’s next on my list.

Download

You can find both plugins on Nukepedia:

http://www.nukepedia.com/gizmos/plugins/3d/geometry-tools/

http://www.nukepedia.com/gizmos/dynamics/

Nuke Script

set cut_paste_input [stack 0]
version 6.3 v7
Camera2 {
inputs 0
translate {0 -4.5 10}
rotate {22 0 0}
name Camera1
selected true
xpos 1565
ypos 1148
}
Light2 {
inputs 0
translate {-1.238000035 0 3}
name Light1
selected true
xpos 1533
ypos 1031
}
J_MulletForce {
inputs 0
forcedir {0 -4 0}
to {0 -4 0}
labelset true
name J_MulletForce1
label “\[value this.forcetype]”
selected true
xpos 1185
ypos 1048
}
push $cut_paste_input
Cube {
rotate {0 45 0}
name Cube1
selected true
xpos 1706
ypos 890
}
Constant {
inputs 0
color {0.25 0 0 1}
format “256 256 0 0 256 256 1 square_256”
name Constant3
selected true
xpos 1212
ypos 559
}
set N6bb6b20 [stack 0]
Noise {
replace true
opacity 0.185
type turbulence
size {5.3 100}
gain 0.97
center {128 128}
name Noise1
selected true
xpos 1391
ypos 603
}
Invert {
name Invert1
selected true
xpos 1391
ypos 627
}
Shuffle {
alpha white
name Shuffle1
label “\[value in]”
selected true
xpos 1391
ypos 673
}
Clamp {
name Clamp1
selected true
xpos 1391
ypos 707
}
push $N6bb6b20
Merge2 {
inputs 2
operation multiply
mix 0.545
name Merge1
selected true
xpos 1335
ypos 761
}
BasicMaterial {
specular 0.008
name BasicMaterial2
selected true
xpos 1300
ypos 811
}
Constant {
inputs 0
color {0.4699999988 0 0 1}
format “256 256 0 0 256 256 1 square_256”
name Constant1
selected true
xpos 1130
ypos 840
}
BasicMaterial {
specular 0.008
name BasicMaterial1
selected true
xpos 1261
ypos 890
}
GT_PolyShards {
inputs 3
scale 1
cells 150
rotate {0 45 0}
name PolyShards1
selected true
xpos 1391
ypos 890
}
J_MulletBody {
labelset true
name J_MulletBody1
label “\[value this.bodytype]-\[value this.coltype]”
selected true
xpos 1391
ypos 1044
}
Scene {
inputs 3
name Scene1
selected true
xpos 1401
ypos 1078
}
J_MulletSolver {
start_frame 2
name J_MulletSolver1
selected true
xpos 1391
ypos 1144
}
push 0
ScanlineRender {
inputs 3
samples {{curve i x5 5 6 5 6}}
shutter 0
output_motion_vectors_type accurate
name ScanlineRender1
selected true
xpos 1555
ypos 1242
}
Constant {
inputs 0
channels rgb
color 0.365
name Constant2
selected true
xpos 1765
ypos 1057
}
Radial {
opacity 0.6
area {-244 -64 1524 784}
name Radial1
selected true
xpos 1765
ypos 1129
}
Merge2 {
inputs 2
name Merge2
selected true
xpos 1555
ypos 1390
}

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s