RiArchive – Looping RIBS in 3delight

Uploading a sample of what needs to be done to loop an animation using a library of RIBS. Props to Bertrand and all. Using Rib Archive offers the benefits of low calorie geometry duplication – good for crowds.

1. Output RIB sequence (this assumes that 0 is set up as the start frame of animation, in the maya prefs and 0 as the start frame of the RIB animation output).
2. Add RIB Archive – under 3delight menu
In this example I put in the address to the sequence.
//// in each RIB archive
under “Rib Filename” I put in “Z:/RIBS/bird.{#%23}.rib” (without the quotes). This will loop through from numbers 0-23 (24 frames in total).
“nameofrib{#}.rib” will find all sequential ribs

This will work, but there is some more code in step 3 that looks to take into account the archive boundaries and adding on string numbers (step 2 looks to pick this up anyway)

3. Create a Geometry Attribute and attach to the RIB Archive. In my example I put the following into the Post_Geo mel script into the Geom Attribute

///

//////

In the example I had outputted a 24 rib frame sequence
but note the 23 in “int $loopMe = fmod($currentFrame,23);”

…. heres a quick and dirty example. i just duplicated the archive and moved around the copies. It’s a bit robotic at the moment with timings being all the same, so need to offset the loops…..

Untitled from digital vfx on Vimeo.

///////////// NOTE ON ADDING ARCHIVES
There are two plugins download available for 3delight – “3delight Studio” and “3delight for Maya”. If you want to add archives through the GUI you will need to have the “3delight” plugin loaded.
Otherwise its possible to manually add in a rib archive by creating a piece of dummy geometry, attaching a 3delight Geo Attr with
pre mel script – e.g RiProcedural -an “C:/myarchive.rib” -b -1 1 -1 1 -1 1;
with Geometry > Output Geometry , switched off.
The -b flag is the boundary size of the archive, which should be set big enough. options are
– when 3DFM creates archives, it puts the proper bound as the first line in the RIB (as a comment). This line can then be read and used for bounds specifications.
– If your rib file was exporter from 3dfm, or has bounds in the same format, you can use this command to read them
float $bounding_box[] = RiReadArchive -rb true -an $filepath;
– Alternatively use -“1e38 1e38 -1e38 1e38 -1e38 1e38” which seems to fit the maximum
– watch when copying and pasting from a website – better to put in “” yourself

1 comment for “RiArchive – Looping RIBS in 3delight

  1. Admin
    June 18, 2012 at 1:23 pm

    Hi Jimmy,
    just happened to be looking at this technique again (I want work out a script to randomize offset animation). Reading the text it didn’t seem clear so I’ve tweaked it – see how you get on with it now

Leave a Reply

Your email address will not be published. Required fields are marked *