maya sprites rendertest in rendeman

its a simple render test of maya sprites in arnold and renderman Studio. it uses a simple noise pattern on a 2d ramp with 2d ramp displacement. one simple noise plugged into a ramp can give a really complex shading behaviour. the extreme displacement come from a simple ramp, this give the smoke more depth.

maya sprite test from Heribert Raab on Vimeo.

maya tip: passing on deformed particle and geomtrie

nonlinear deformers or scuplting on geo/partilces are great to tweak your sims. but it will not written into the cache file. the deformation gets always added on top of the cache. this is little bumpy, example: if wanna use the deformed nParticle to emitt into a fluids container.
in this case, you can use the new node editor to plug the outGeometry of the deformer into you depending geo/nodes like the fluids emitters. easy !


Maya playblast tool2

here is an improved version of the playblast script. Jean Denis pointed out the playblasting of more cameras is sequential and parallel. (thanks for that!) which would extreme slow in heavy scene with complex characters or large cache file. the new version of the script capture all cameras on each frame at the same time.  this way, maya have evaluate once on each frame and not do extra evaluation for each camera.  this way you can playblast simulations with different camera without caching.

i am using the active viewport for each camera to keep resolution constant. (and it avoid maya viewport issues).

* just made a little update to free maya after player is showing up

** another update: i added 2 more botton’s for houdini “mplay” tool. if you have houdini installed (even the demo version) it will bring up a mplay app and play until 4 cameras simultaneity in one window. (row or quas view)
tip: with shortcut “s” you link all view together and zoom synchronously

*** you use rv tile option (menu tools–>tile) to view all cameras side by side. i set it to default in the script

**** bugfix with timerange

download it here

// written by Heribert Raab 
// the tool create outliner with contain just cameras
// clicking on each camera switches through camera on your active viewport
// playblast botton will playblast all selected camera with aktiv viewport and load them into fcheck or rv

global proc playB(string $player)
string $select[] = `ls -sl`;

// setup playblast dir
//string $path = "/tmp/test/";
string $frames2[] ;
string $fl[] = `renderSettings -firstImageName -fullPathTemp`;
string $f2[] = `renderSettings -firstImageName`;
string $path = substituteAllString($fl[0], $f2[0], "");
int $min = `playbackOptions -q -minTime`;
int $max = `playbackOptions -q -maxTime`;
int $fr = $max - $min;

int $f;
string $all;
string $play;
string $scene = `file -q -sn -shn`;
string $scname = substituteAllString($scene, ".", "_");

for ($f=$min;$f <$max;$f++)
// playblast selected Cameras
$numInts = size($select);
$ridNum = $numInts +1;
int $i=0;
string $seq[];

for ($i=0;$i < $numInts; $i++)
lookThru ($select[$i]);
$frames2[$i] = $path+$scname+"_"+$select[$i];
//print ($frames2[$i]+"."+$f+"\n");
playblast -st $f -et $f -forceOverwrite -format image -fp 4 -compression "jpg" -f($frames2[$i]) -viewer 0 -offScreen -percent 100 -quality 70;
$all = stringArrayToString($frames2, ".* ");

//image player command
$play = ($player+" "+$all+"*");

if ($player =="mplay") $play= ($player+" -V 2 2 -g "+$all+"* &");
if ($player =="mplay2") $play= ("mplay -V 4 1 -g "+$all+"* &");
if ($player =="rv") $play_rv = ($player+" -tile "+$all+"* &");
if ($player =="fcheck") {$play = ($player+" -S "+$all+"* &");}

print $play;print "\n";
system( $play );

global proc look(){lookThru `ls -sl`;}

string $filterP = `itemFilter -byType camera `;

window cameras;
frameLayout -labelVisible false ;
string $panel = `outlinerPanel`;
columnLayout -adjustableColumn true;
button -label "Playblast selected Cams with RV" -command "playB rv";
button -label "Playblast selected Cams with Fcheck" -command "playB fcheck";
button -label "Playblast selected Cams with mPlay quad" -command "playB mplay";
button -label "Playblast selected Cams with mPlay row" -command "playB mplay2";

string $outliner = `outlinerPanel -query -outlinerEditor $panel`;
outlinerEditor -edit
-mainListConnection "worldList"
-selectionConnection "modelList"
-f $filterP
-selectCommand look
-showSetMembers true
-setFilter defaultSetFilter

houdini style in maya


With new Node Editor in maya (since version 2013) , it open up for new kind setup’s.  If you simple map attribudes of particles into custom locator, you are able to work more visual with expression in the node editor. it feels similar to houdini vex or VOP SOP network editors. its much smoother way to work, specially  if hand off rigs and setup to other TD’s. it was possinle to this kind setup in maya’s old grapheditor but the painful and slow. it redraws all connection at any change and with a complex setup it slow down your working speed.

new old waterfall designer tool

i had time to optimize my rig for old project:
this is a quick demo of realtime preview of my waterfall rig. the volume represents the implicitly volume rendering in renderman. i used couds shape to show in maya opengl the size and opacity of the implicit volume (renderman).

here example of my expressions setup for faking air pressure:

this is a screen of my adjustable volume emitter for my waterfall rig. i can fit the emitter to edge of the rocks and adjust the amount of water on each position with a ramp:
i hope i can post a video with all “water-structure” feature of my rig.

fire demon setup

i´ve started a private project… i trying to build a action scene with a heavenly fluids driven character. the Inspiration comes form concepts books of warcraft tradings card (by blizzard entertainment) and dungeon and dragons monster books. here is the rig for the character, the shape of body are complete created with maya fluids.

the rig controls every movment and extra keyable control´s for fire-speed, flamesize and extra release fire to get more expression out of the character. i´ve seperate the fire into 30 different fluids containers to keep the cache small and get more control over the character shapes, i also have reorganzied the caches-system to knock down the size of the caches files again for each shot. now, with cached fluids the character can easy animated and the viewport feedback is not too bad.

kill particles on special objects

add attr collisionGeometryIndex to you particle shape and :


int $idx = particleShape2.collisionGeometryIndex;

string $geoC[];
string $shape[];

if( $idx != -1 )

string $geoC[] = `listConnections particleShape2.collisionGeometry[$idx]`;
string $shape[] = `listConnections ( $geoC[0] + “.localGeometry” )`;
print( $shape[0] + “\n”);
if ($shape[0] == “killcube”) particleShape2.lifespanPP = 0;

download it here

waterfall 2.5

finally, i had finished sets of the nodes in nuke for my waterfalls. i can change the look of the waterfalls in realtime and place it in the 3d space in nuke. so i can fly around in 3d-space and place so many waterfalls i want… the rendertime takes about 5 seconds in nuke (incl. displacments) with this different waterrfalls. (all created with same base-layer).