"F9 render on NRC renderfarm" script?

vncnt

Well-known member
I'm looking for a script that sends the current frame (only) to the NRC renderfarm, so I can continue working on the current scene.

Current settings for Camera, Rendering (render range limited to the current frame), etc.
Default settings for output path and file.

No File Explorer, no file dragging to NRC Controller, no last minute setting changes.
Just Ctrl+Alt+F9 and continue.

Does it exist already?
 

vncnt

Well-known member
The SendFrameToNRC plugin exists now, and it's free!
Simply hit the Send button and watch your NRC Controller processing your request (the current frame only!).
The requested task is pointing to its own LWS scene file.

Description in the included readme file.

It also has a remote controller script, to be assigned to any keyboard key, so you don't even have to (re-)open the master plugin.
[Ctrl + Alt + F9] seems logical to me.

Let me know how this works for you!

SendFrameToNRC.jpg
 

Attachments

  • Legato_SendFrameToNRC.zip
    31.9 KB · Views: 22

vncnt

Well-known member
I've improved the setup for this SendFrameToNRC plugin.
The remote script now checks the availability of the master script, and adds the master script automatically when absent.
It opens the dialog so you can check the path settings before clicking button Send Current Frame.

Ideas for new features?
 

Attachments

  • Legato_SendFrameToNRC_20-JUN-2021.zip
    32.5 KB · Views: 19

slacer

Member
Since you want to render just one frame and you send it to NCR, it would be great to be able to split this image into a bunch of limited regions.
Suggestion for implementation:
  • read number of requested stripes from UI or some preset setting (you don't want to fiddle with dialogs if your goal is a keyboard shortcut)
  • create n copies of the current scene file with calculated limited region and current frame for this specific stripe and unique filenames for the output RGB
  • send all stripe files to NCR

  • Bonus - assign another shortcut for collecting the image stripes and push them as one image into the window with the previous F9 renders.


    I found scripts for the stripes yesterday, but it does not support NCR specific tasks.

    I have some heavy radiosity scenes and it takes ages for my machine to render. Having 4 machines does not help, if you can't split the work for a single frame accross multiple worker nodes.
    A plugin to solve this problem would be great. :)
 

vncnt

Well-known member
Good idea.
In the past I did some Limited Region code, ScreamerNet related.
Haven't touched it for a while.

I'll see what I can do.

Also, I was thinking about an optional reference to a specific Camera.

limitedregion.jpg
 

slacer

Member
Good idea.
In the past I did some Limited Region code, ScreamerNet related.
Haven't touched it for a while.

I'll see what I can do.

Also, I was thinking about an optional reference to a specific Camera.
This would be great.
 

vncnt

Well-known member
A first concept.
It doesn't crash but the original SN solution needs to be changed.

concept.jpg
 

slacer

Member
Do you use the free version of Fusion 9 or do you support Fusion 17 as well?
Are you going to combine all stripes using Fusion 9 or is this button not related to stripes at all?
 
Last edited:

vncnt

Well-known member
A frame (or sequence) can be segmented in matrix-, horizontal-, or vertical segments. Procedure:
  1. Enter the number of available nodes you want to distribute to.
  2. Click button Init Segmentation.
  3. Choose a Codec Friendly multiplier, segment width/height is adjusted, attempting to keep either segments or keep the segment size.
  4. Adjust Columns and Rows (or # of Segments) and everything is adjusted to best efforts.
You can use the '-' or '+' button to change the current segment (visualized in the current Camera view).
This part survived the copy/paste of the code.

The Build Fusion 9 Comp has been written when I was using the free version at home at that time.
It's a smart and cheap solution to combine segments (in every configuration you used) into a full-frame video stream.
So there is no need to move each segment into position manually.
Recently things have changed for me, and now I can use the registered version, currently Fusion 17.2.1 and Resolve 17.2, so I need to test for compatibility issues.
If there are issues, I need to fix them anyway.
It's not too complicated because comp files are text based.

To do:
  • Send Full Frame Sequence (seemed logical to me to add this option) [done]
  • Send Segmented Frame (more nodes than frames)
  • Send Segmented Sequence (more nodes than frames)
  • Build Fusion (9 and/or 17) Comp
Just finished a new feature that saves a config file in the CONTENT directory.
It is used at startup to load default settings, in case your common directories (queue, content, output) are different from mine.
 
Last edited:

slacer

Member
I have the free Fusion 9 edition as well, so please don't delete this part from your plugin.

Do you know if the plugin would work on Macs as well? I am not sure about LScript in respect to path and network specifications for different operating systems.
like
M: mapped to \\servername\sharename\subfolder
vs
smb://servername/sharename/subfolder
 

vncnt

Well-known member
Ok, if needed I'll keep v9 as well.
I don't have access to macOS or unix computers but you can always volunteer!
 

vncnt

Well-known member
Current operational version.

concept2.jpg



To do:
  • Send Full Frame Sequence (seemed logical to me to add this option) [ready]
  • Send This Segment
  • F9 Render Segments [ready]
  • Send Segmented Frame
  • Send Segmented Sequence
  • Build Fusion (9 and/or 17) Comp
  • Reset Segmentation [ready]
The default Available Nodes can be set in the config file, just like the queue/content/output path.
 

vncnt

Well-known member
I would like to try it in my mixed OS environment (2x Windows 10 1xMac x64 1x Mac M1).

You could start with an experiment.
Create a new text file, named test.nrc, with similar content to render a simple test scene:

S:\NRC_content\RoboArm_demo_midi-007\Scenes\testBox.lws
S:\NRC_output
false


Place that nrc file in the NRC_queue directory that the NRC Controller is monitoring for new tasks (check its Preferences):

pref.jpg


My question: what should be written instead of S:\NRC_content\xxx, S:\NRC_output and S:\NRC_queue in your case, to make it work?
 

slacer

Member
I tried it on a Windows machine and the Network Render Controller is not reacting to the new file named test.ncr
No new Scene is showing up in the window.
Stopping and starting the controller had no effect.
Render Controller Version is 2020.0.3

Ok, I think I got it wrong...
What should be the effect of this file? Should the scene appear in the NCR Window?
 

Attachments

  • Legato_send_to_ncr.PNG
    Legato_send_to_ncr.PNG
    15.7 KB · Views: 15
Last edited:

vncnt

Well-known member
Yes, it should be immediately picked-up by the NRC Controller.

If it doesn't, verify all settings in all Preferences-tabs.

Also, each render node (including the computer with the LW license) should have access to the common network path. Can you copy/paste files between computers?

Make sure the NRC Controller at least works by loading or dragging scene files. Including plugin directory, content directory, and output directory.

If that works, continue with the setup of the NRC_queue directory.

If it still fails, please describe the steps.
 

slacer

Member
Sorry for all confusion, but I used the wrong file extension. The configured scene appears in the NRC scene window.
But I cannot touch the system for the next 9 hours.
 
Top Bottom