Render


Yes, of course it starts to render.

When the client gets a job, then it


  • Find the right render config for the commandlines.
  • If it is a rrSharedExe render config (e.g. renderman by default), then it copies the RenderMan Exe folder to the local hard drive.

    (of course only changes, you can see the copy result in every render log at the top)

  • It finds the right executable version for the job. (If you render parallel with Softimage 7.0, 7.5, 2010 and 2010_sp1, you only have to specify one of them in the client config)
  • Creates a Batch file based on the render config. The Batch file that sets RR environments, executes the setenv for the render application and executes the render config commandlines.


Monitor



While a job is running, the rrClient watches all render processes (+child processes).

It measures the CPU usage and memory usage of each process.

If all render processes are not using that much CPU power for a longer time, then the render probably freezed.

It also sends the memory usage of the job to the Server, so you can see it the statistics of the job.


Image Analysis


This section does only apply if you have enabled "Local Render Out" for a job.

After an frame is rendered, the client copies the frame to the right location on your fileserver.

During this copy the client a) checks the image for errors and b) creates a cache file for the rrViewer.


a) If the image file itself is broken, then the client renames it as "broken_...".

(You can enable/disable this behavior in rrConfig.)

The image is not counted as finished and will therefore be re-rendered.


The client does also a visual error analysis.

For example if there are render tiles missing or you have small black NaN-pixels.

The image is not re-rendered, it is marked with an error/warning/info flag.

See rrViewer help for details.


b)

The cache file is a small thumbnail of the frame.

It includes the result flag of the error analysis, the client name and the render time of the frame (not exact).

If you start the rrViewer, then the cache files are loaded.

This way you have a very fast view of your complete rendering to check for errors, you can load a complete HD rendering in a few seconds. 


Result


Each program sets a return code when it finishes (or crashes).

When a render application has finished its execution, the rrClient gets the return code to check if the render process has crashed.

When it has crashed, the rrClient sends a message to the rrServer.


Log


After a job has finished, the rrClient searches the render log files for messages.

There are many errors that produce wrong results or should count as an unsuccessful rendering, but the render application itself has finished successfully.


For example the message "This scene was created by a newer version". This tells the rrServer that this client does not get the job again.

Then the message "No license for renderer X available" tells the rrServer to reduce the number of available licenses for this render application.

You can even set any custom error line in the render config like "shader not found" or "object not loaded".