AWS Thinkbox Discussion Forums

VRay Distributed Rendering on renderfarm

At the company I work at I use 3DS Max + Vray to produce high quality visuals. We also have another 2 employees who produce visuals using 3ds max + mental ray. Going forward we are wanting to implement a renderfarm to speed up work and off load render from the workstations in order to continue working on other work whilst waiting.

The majority of work we produce is single still renders - animations are something which we are very interested in but they are not the priority. This means that we need to use distributed bucket rendering from VRay in order to fully utilise the render farm whilst rendering single images.

Obviously I understand that VRay supports Distributed rendered as standard but it requires the initiating workstation to be involved in the rendering process meaning you can’t continue work on other things.

VRay’s distributed rendering also does not work with Backburner rendermanager so this means that we cannot rack up render jobs to render one after the other.

We are desperately seeking a VRay compatible renderfarm management solution and I was hoping that someone would be able to offer some advice and inform me of whether Deadline will solve our problems.

Also does deadline allow jobs to be rendered out from different renders i.e. 1 vray job followed by a mental ray job followed by a scanline? etc etc



Thanks,



Marcus.


>We are desperately seeking a
>VRay compatible renderfarm
>management solution and I was
>hoping that someone would be
>able to offer some advice and
>inform me of whether Deadline
>will solve our problems.

Marcus,

Deadline implements so-called Tile Rendering (similar to the way Backburner allows you to render portions of an image on multiple machines, then stitch them together) in 3ds Max, Maya and XSI. A single job is sent to Deadline for each tile and a Crop Region rendering is performed on the given region. Once all tiles are saved to disk, Deadline automatically assembles the tiles into a final image, but also leaves all tiles behind, thus allowing you to resubmit any of single tile and update the final image without rerendering all other tiles. For example, if you forgot to unhide an object in the lower left corner of the image, you could resubmit only the tiles affected by that object.

Tile Rendering on Deadline also supports animation sequences, so you can render any number of frames in any number of tiles.

We just finished updating the Tile rendering feature internally and prepare an update which will address some issues in the current Deadline 2.6 version available to the public.

These issues are:

* Render Elements were not supported correctly in 2.6. Now this is fixed and you can render any number of render elements as tiles and get them assembled automatically.

* Only the OpenEXR format was supported in 2.6. In the upcoming update, the Tile Assembler will support other common formats like JPG, TGA, BMP, PNG and TIF.

* There was a minor bug in the Max Submitter which prevented it from correctly submitting a Tile job unless you switch the Tile Mode drop-down list in the Submitter GUI at least once. While the solution is simple, this has caused a lot of annoyance with first time users and is now fixed.



>Also does deadline allow jobs
>to be rendered out from
>different renders i.e. 1 vray
>job followed by a mental ray
>job followed by a scanline?
>etc etc

If you have enough machines on the farm, you can either allow them all to render all types of jobs, or organize them in "Pools" to handle specific tasks. For example, at Frantic we have a dedicated pool for Max and a dedicated pool for Digital Fusion jobs among others.

Each slave machine picks a job, checks the type of plugin it requires and loads the necessary application with the correct settings, so submitting mixed jobs like you described is the typical scenario.

Deadline slaves can run not just Max-related rendering jobs but also all other types of jobs we support (see list of supported applications on our web site). You can even run generic jobs like compiling plugins overnight, performing system cleanup tasks and whatever can be written in a script or external application with command line control. The Max Submission script also supports submission of MAXScript jobs so you can run calculations or scene processing/assembly/import/export/analysis tasks written in MAXScript on a slave machine.

If you have any other questions, please feel free to ask.

Regards,

Borislav "Bobo" Petrov
Technical Director 3D VFX
Frantic Films Winnipeg

Thank you for the reply, I have managed to setup a small farm of 2 machines and have successfully rendered out a single image distributed between the 2 machines. I am very very happy and we will be implimenting Deadline with the company in the next 1-2 months.



As an aside note, I have managed to render out the image in 2 segments to a specified directory in exr format. I was under the assumption that if I rendered out to this format then Deadline would recombine the rendered image for me? Where would this be located? I can’t find it anywhere.



Thanks.



Marcus

In 2.6, there are two reasons why it might now assemble correctly:


  1. You have to render to a network path seen by all slaves (this is a must anyway, even without tile rendering). The assembler is being run by each slave after a tile finishes, so if all other tiles are there already, it should assemble them automatically.


  2. In 2.6, we have a bug that prevents the assembler from completing if the path contains ANY spaces. If your path had spaces, you can fix the problem easily by finding the file



    DeadlineRepository\submission\3dsmax\maxTileAssemblerCommand.ms



    and changing the line



    doscommand (theNetworkPath + "EXRTileAssembler.exe " + getFileNamePath outputPath + getFileNameFile outputPath + (getZeros DeadlineUtil.currentFrame) +getFileNameType outputPath )



    to



    doscommand (theNetworkPath + “EXRTileAssembler.exe “” + getFileNamePath outputPath + getFileNameFile outputPath + (getZeros DeadlineUtil.currentFrame) +getFileNameType outputPath + “”” )



    (this adds " quotes around the file name passed to the assembler).



    In 2.7, this will be fixed, and we will also support more file formats so OpenEXR will not be the only option…



    If neither of these points addresses your problem, please let me know!



    Borislav “Bobo” Petrov

    Technical Director 3D VFX

    Frantic Films Winnipeg
Privacy | Site terms | Cookie preferences