Ornatrix [c4D] 2.0.4.24319 [Win64] - help with caching animation for distributed rendering on farm

 
 
 
Posted by:MagicHolo
Data created:27 July 2020

Hi, I've rendered a sequence of animated frames on our internal render farm without baking, or caching. The resulting hair is flickering as a common result. So, no surprises here...

To solve this, I've tried to use the "Animation Cache" node to cache my animation from frame 40-2000. I'm trying to save a sequence of cache files to a network share using .####. in my file name. This time, I've been using the mapped drive letter, instead of the \\path to make sure this is not the reason fro the crash. But, the crash still happens at the end of the progress, when 100% is reached. Only one file gets written with 1kb, name Animation.0040.abc - which is basically the first frame. 

I then tried to use the Ornatrix Alembic export via the file menue instead. Using this method, all files from frame 40 to 2000 are written corectly to my shared network drive, each at about 8kb in size. Now, I tried loading this sequence with the "Animation Cache" node, but the result is offset in positive z, mirrored in the z-Direction (-1) and renderders incorrectly (huge metaballs) inside the redshift render view.

What did I do wrong? How can the animation be cached correctly to be rendered without flickering, without beeing mirror and offset, and with incorrect scaling, on a render farm?

Tanks,

Karsten

Hello Magic,

 I've rendered a sequence of animated frames on our internal render farm without baking, or caching. The resulting hair is flickering as a common result. So, no surprises here...

This happens because each machine in the render farm is re-generating the strand roots. This is solved by turning ON Remember Roots Positions in Hair from Guides. See the  docs here. I would try this again before proceeding with the Alembic Cache.

To solve this, I've tried to use the "Animation Cache" node to cache my animation from frame 40-2000. I'm trying to save a sequence of cache files to a network share using .####. in my file name. This time, I've been using the mapped drive letter, instead of the \\path to make sure this is not the reason fro the crash. But, the crash still happens at the end of the progress, when 100% is reached. Only one file gets written with 1kb, name Animation.0040.abc - which is basically the first frame. 

 I will investigate this and get back to you as soon as I can. For you this ONLY happens when recording the alembic to a network drive? 

I then tried to use the Ornatrix Alembic export via the file menue instead. Using this method, all files from frame 40 to 2000 are written corectly to my shared network drive, each at about 8kb in size. Now, I tried loading this sequence with the "Animation Cache" node, but the result is offset in positive z, mirrored in the z-Direction (-1) and renderders incorrectly (huge metaballs) inside the redshift render view.

The export settings dialog have options to set the up axis. Be sure to set it correctly: 

 

Try adding ChangeWidth on top and see if this solves the rendering issue. 

 

Jeordanis Figuereo (Product Designer. EPHERE Inc.)

 I would try this again before proceeding with the Alembic Cache.

I've activated /ON Remember Roots Position in "Hair from Guides". I would then get very weird results. Now, several render instances have lost the hair at all, as well as some have very little pieces of hair in just some places. (Maybe loading the plugin went wrong) - so I reinstalled 2.0.5 on the slave machines to make sure the installation was not corrupted when trying to use versions 2.0.4 and 1.0.8. 

So the plugin installation was corrupted. Reinstalling the plugin 2.0.5 and resending it to the farm solved the frames with NO hair, but the other error still persists, I would get only some little hair pieces, at least the errors is now regular between the frames, flickering gone.

Eventhough all the frames finish on the farm, some have errors (Deadline log): 

Ornatrix Error: Cannot generate 37195 hairs, because their guide dependencies are missing

2020-07-28 16:47:09: 0: STDOUT: Redshift Debug: ExecuteGraph: CalcError:12 Name:RS Material{9c5c8e6edd6414079ce7ae19d5f62800}

looks like its a Redshift crash in the end that also crashes commandline.

Redshift Error:

ASSERT FAILED

2020-07-28 16:48:03: 0: STDOUT: File Memory\Memory.cpp

2020-07-28 16:48:03: 0: STDOUT: Line 59

2020-07-28 16:48:03: 0: STDOUT: Failed to allocate mem (262144 bytes)

2020-07-28 16:48:03: 0: STDOUT: ======================================================================================================

2020-07-28 16:48:08: 0: WARNING: Monitored managed process Cinema4DProcess is no longer running

2020-07-28 16:48:08: 0: Done executing plugin command of type 'Render Task'

 

So I went on trying the Alembic route.

For you this ONLY happens when recording the alembic to a network drive? 

No. I've tried using the local path c:\cached_hair\Animation_####.abc with the same crash happening at the end of the progress when reaching 100% (tested versions 2.0.5/2.0.4/1.0.8)
There's no file written to disk. But, I got a c4d crash reports with 2.0.5 and 1.0.8, never with 2.0.4

 

The export settings dialog have options to set the up axis. Be sure to set it correctly: 

 Yes. I've done that correctly in the first place, but double checked that after my output was wrong. 
Basically, I'd need a way to mirror along Z. Y Is up in Cinema and stays up. I've been using World Coordinates. The documentation says not using these would place the alembix output in the scenes origin, otherwise it should keep the offset.

I'm using the Render version, Ogawa, Frame 40-2000, NOT exporting Velocities, basically everything exactly like the screenshot you posted.

As I've only one Ornatrix object, I've selected it before exporting and also DONT use "One Object per File", as this would help with splitting up several Ornatrix objects.

Thanks.

The last thing I tried:

Try adding ChangeWidth on top and see if this solves the rendering issue. 

So I loaded my .abc sequence, that is basically mirrored in Z-axis and changed the order of the "ChangeWith".
From "above" Animation Cache to "Below", that basically puts it in as "on top" (reversed order in C4D, right?) Now, the hair renders in correct size AND the flipped Z-axis is gone as well (in viewport and Redshift IPR).

Unfortunatelly, the farm is giving me strange results. Have a look at the rendering "mouse_hair_in_a_few_places.JPG".

The correctly looking rendering is just a local rendering of a still image in Redshift IPR with bucket mode.

Any ideas?

Thansk,

Karsten


Attached Files:

>FurBall_stack.JPG (17396 bytes), >mouse_correct_single_image.JPG (29599 bytes), >mouse_hair_in_a_few_places.JPG (19965 bytes), >redshift_IPR_mirroredABC_largeWidth.JPG (118226 bytes),

Unfortunatelly, the farm is giving me strange results. Have a look at the rendering "mouse_hair_in_a_few_places.JPG".

How are you loading the alembic, using the Import/Merge in the menu or using the AnimationCache? If using the import menu it will crate a BakedHair/BakedGuides modifier, there make sure that the mesh(the mouse) is set as distribution mesh and click Attach Roots(It should change to Roots Attached or Detach Roots). 

Second make sure that your machine and the render farm are using the exact same Ox build. 

Jeordanis Figuereo (Product Designer. EPHERE Inc.)

Hi Jeordanis,

 

So, I finally went back to an older version of my scene file (created with ornatrix 2.0.4), that was never opened and resaved in 2.0.5 or 1.0.8.

I did the stack swapping trick by putting "Change Width" after "Animation Cache". Seems like the latest file got corrupted when resaving with different plugin versions.

 

Solution: Now, everything renders perfectly on the render farm without errors. (Export .abc as file sequence to shared network drive, loading it back in with "Animation Cache" object and reordering "Change Width".)

Not working:  I deactivated the "Animation Cache" und just turned ON Remember Roots Positions in Hair from Guides with this "un"-broken .c4d file. -> The resulting renders looks flicker free, but the hair is still missing in a couple of places, it is different from the broken file, as there is more places with hair, but is is still not complete.

This way of rendering also has a couple of erros: Ornatrix Error: Cannot generate 33968 hairs, because their guide dependencies are missing -- followed by redshift errors and finally a redshift crash.

 

A BIG THANK YOU for providing so many different potential ways of solving this! ONE finally saved the day for me!

 

Cheers,

Karsten

Hey Jeordanis,

so the test shot of around 10 Frames showed less flickering, the entire shot is 2000 frames long and still has the problem of flickering hair. It looks like it was "reduced" a bit, but is still not in a usable state.

I'm using a cached alembic sequence that is loaded via the animation cache object. I exported this .abc sequence using File>Export>Ornatrix Alembis, because the export by using the animation cache object is crashing c4d.

I also noticed when loading the .abc sequence back in, giving the file name Animation_####.abc is resulting in an error message. Instead I can just use the first frame of the sequence to make it work, like so Animation_0040.abc.