I was wondering if anybody encountered a problem with rendering cached syflex objects using alfred on multiple machines:
I run a script that calls the syflex custom command syGetStress ona frame basis. This script then converts the systress float array to a string that I pass to slim as a primvar. This is then baked as an animated texture via renderman, and applied later on to drive the displacement.
However, no matter what I do the first frame of the lot always renders frame 1.
So for instance if I render chunks of 50 frames per rendermachine, I get blank textures at frames 50, 100, 150 etc. etc.
I’ve tried both by using a script node to execute the script before and after file open, runtime expressions, renderman preFrameScript, but none of them worked.
I tried to understand what’s going on; here’s what I figured out:
maya batch mode is opened at frame 1. Maya loads the scene (ascii format). The script is evaluated at frame 1. Then the rib generation is run for frame 50. For some reasons the script is not evaluated propely; it seems like that the time doesn’t change. After that Maya go to the next frame, and finally the script gets evaluated (and frame 51 is rendered correctly).
I found two workarounds (one is to have a runUp from frame 99 if I render frames 100-600), so that every rendermachine opensup frame 99, and play until the desired render frame. This should force the evaluation of the script. Only disadvantage is that in case of long sequences you get a runUp from 99 to 550 for instance.
The other workaround is simply to render all on one machine
I know it’s a friday…