Trouble with Enhanced Remote Control (ERC) when network rendering

cyborgty_074ff6c243cyborgty_074ff6c243 Posts: 132
edited October 2013 in Carrara Discussion

Is Enhanced Remote Control (ERC) suppose to work with network rendering? I have an object with the ERC modifier applied and the results only look fine when rendering locally. I copied the ERC* files from my primary workstation's carrara extensions path to the extensions path of the network render nodes. Could it be a licensing issue on the rendering nodes? if yes, how do I resolve? Any help would be appreciated.

Post edited by cyborgty_074ff6c243 on

Comments

  • FenricFenric Posts: 351
    edited December 1969

    It should just work. What sort of behavior are you seeing?

  • cyborgty_074ff6c243cyborgty_074ff6c243 Posts: 132
    edited December 1969

    Fenric said:
    It should just work. What sort of behavior are you seeing?

    I have an animation with a ponytail attached to a ball character and when rendered over the network, the tail doesn't move or stays in the rest/initial position (except for maybe the frames rendered by the local system).

    I copied these files to the render nodes. Are these the only ones needed?
    ERCModifier.dat
    ERCModifier.mcx
    ERCModifier.txt
    ERCTweener.dat
    ERCTweener.mcx
    ERCTweener.txt

    Attached is a animated gif of local machine render (where the tail moves) followed by the network render.

    scene2-sample_network.gif
    640 x 360 - 5M
    raceTest2.gif
    640 x 360 - 4M
  • FenricFenric Posts: 351
    edited December 1969

    Yes, those are the only files. And no, that's certainly not right. I'll take a look... it used to work on 8.1, so that's disappointing.

  • FenricFenric Posts: 351
    edited December 1969

    It appears that Carrara no longer plays every frame at the rendernodes. Many effects depend on state that "came before" the current frame, and so the modifiers and behaviors need to be walked through from frame zero forward, even if the node is only rendering a later frame.

    That means that none of the delay-related operations are going to work on a network render. I'm not sure how to fix this.

  • cyborgty_074ff6c243cyborgty_074ff6c243 Posts: 132
    edited December 1969

    Fenric,
    Thanks for looking into the problem. I know its common to have host application changes that cause problems for plug-ins. Since I recently considered spending time to get familiar with ERC, its too bad I encountered this problem with a resolution that is elusive. :down:

  • FenricFenric Posts: 351
    edited October 2013

    It is possible to work around this issue without needing any code changes:

    1. Get the scene to its "production" state.
    2. Save your original scene off somewhere - you're about to ruin it.
    3. Rewind the sequencer to the first frame of your animation (presumably frame 0)
    4. Make sure that "play every frame" is enabled (don't let the preview player skip frames)
    5. No Looping!
    6. In the ERC modifier, choose "Manage Keyframes"
    7. Play the preview animation.
    8. Immediately delete the ERC modifier
    9. Save the scene - only saved scenes will render with network rendering.

    This will bake the animation into keyframes, which will happily work across the network render. It's not ideal, but at least you can keep moving forward.

    Post edited by Fenric on
  • wetcircuitwetcircuit Posts: 0
    edited December 1969

    Fenric said:
    It is possible to work around this issue without needing any code changes:

    1. Get the scene to its "production" state.
    2. Save your original scene off somewhere - you're about to ruin it.
    3. Rewind the sequencer to the first frame of your animation (presumably frame 0)
    4. Make sure that "play every frame" is enabled (don't let the preview player skip frames)
    5. No Looping!
    6. In the ERC modifier, choose "Manage Keyframes"
    7. Play the preview animation.
    8. Immediately delete the ERC modifier
    9. Save the scene - only saved scenes will render with network rendering.

    This will bake the animation into keyframes, which will happily work across the network render. It's not ideal, but at least you can keep moving forward.


    Can we get this in a ReadMe somewhere?

    Or do we have a community rolodex of workarounds where these things are saved?

  • FenricFenric Posts: 351
    edited October 2013

    Good idea.


    http://fenric.com/wordpress/product-help-and-tips/carrara-enhanced-remote-control/


    Due to SPAM, all of my pages are set to "full moderation", so you won't see anything you post until I review and approve it.

    Post edited by Fenric on
  • cyborgty_074ff6c243cyborgty_074ff6c243 Posts: 132
    edited December 1969

    Fenric said:
    It is possible to work around this issue without needing any code changes:

    1. Get the scene to its "production" state.
    2. Save your original scene off somewhere - you're about to ruin it.
    3. Rewind the sequencer to the first frame of your animation (presumably frame 0)
    4. Make sure that "play every frame" is enabled (don't let the preview player skip frames)
    5. No Looping!
    6. In the ERC modifier, choose "Manage Keyframes"
    7. Play the preview animation.
    8. Immediately delete the ERC modifier
    9. Save the scene - only saved scenes will render with network rendering.

    This will bake the animation into keyframes, which will happily work across the network render. It's not ideal, but at least you can keep moving forward.

    Oh. Okay. This might be an acceptable workaround. I will test this later today. :-)

  • FractalDimensiaFractalDimensia Posts: 0
    edited December 1969

    Fenric said:
    It appears that Carrara no longer plays every frame at the rendernodes. Many effects depend on state that "came before" the current frame, and so the modifiers and behaviors need to be walked through from frame zero forward, even if the node is only rendering a later frame.

    That means that none of the delay-related operations are going to work on a network render. I'm not sure how to fix this.

    Actually, this is a bit disappointing, Fenric (not due to anything you did!)

    It would seem this "change" in C8.5 is not an enhancement. Actually, I can't imagine someone made the decision to modify how node rendering works without posting something somewhere about it, and thus, I'd call it for what it is - a defect.

    Should this be reported? I GOL'ed (groaned-out-loud) reading through the work around steps. And I can't imagine doing any significant animations without farming it out....

    BTW, thank you so much for looking into this and providing a solution (band-aide though it is...).

  • FenricFenric Posts: 351
    edited December 1969

    Yes, I suppose this should be reported.

    Frankly, this is going to limit what you can do in the Python script plugin. And I had wondered why Physics always seemed to calculate the entire timeline instead of figuring out things as it went - that's the only thing I could come up with: basically automate the keyframe-generation workaround to pre calculate the entire timeline.

  • FractalDimensiaFractalDimensia Posts: 0
    edited December 1969

    Fenric said:
    Yes, I suppose this should be reported.

    Frankly, this is going to limit what you can do in the Python script plugin.
    I was thinking the same thing, though my mind can't handle going there at the moment. =/ I was already looking into integrating BOID animation with ERC. It was/is such a natural fit....

    And I had wondered why Physics always seemed to calculate the entire timeline instead of figuring out things as it went - that's the only thing I could come up with: basically automate the keyframe-generation workaround to pre calculate the entire timeline.

    It's a brilliant maneuver.

    On a tangential note, I noted C8.5 no longer converts Physics calculations into keyframes. (I used to do this in C8.1.) I need to report this as well. I'll submit this today.

  • edited December 1969

    Just as an aside, my understanding is that they changed it for efficiency when rendering an animation with render nodes. With the old way, every render node did the scene set-up for every frame. Render 100 frames on 4 render nodes, then the scene set-up gets run 400 times. In the new way, the scene set-up is only run 100 times, and each frame is handled by one of the nodes. This is apparently a side-effect, and one I'll have to watch for in my own plugin. Too bad there's no checkbox to use the old render behavior. I think your plugin can still request "SetTime()" to step through the animation calculations.

    I've also seen bug reports in the past about some shaders and volumetrics not "lining up" where the render tiles meet due to differences between 32/64 bit or Windows/Mac. The new node behavior would eliminate that problem, as well.

  • wetcircuitwetcircuit Posts: 0
    edited December 1969

    brianorca said:
    I've also seen bug reports in the past about some shaders and volumetrics not "lining up" where the render tiles meet due to differences between 32/64 bit or Windows/Mac. The new node behavior would eliminate that problem, as well.
    This has effected me forever, until I diminished my use of render nodes entirely. The things I needed the nodes for, ie: slow to render things, are exactly the things that suffered from mismatched tiles…. Catch 22.

    Interesting to hear there is now a solution.

Sign In or Register to comment.