Overview
Currently we are implementing and seeing good performance when using an IFD based rendering workflow for Mantra under Qube. This is currently a somewhat manual process, but will be improved over time. Distributed simulations are not currently supported, but are intended to be implemented at a later date.
Process
An IFD (instantaneous frame description) file is generated under Linux, one for each frame. Then using WranglerView, a job is submitted that points to these files. Qube then distributes and monitors the mantra render processes.
Prerequisites
- Mantra is used as the renderer
- IFD files MUST be generated in Linux so all paths can resolve
- Anything beyond the most basic of dynamics must be cached
- File/directory paths must contain NO spaces
-------------------------------------------
Generate IFD files in Linux
- Log into the Linux desktop, and launch Houdini:
( Applications -> SideFX -> Houdini <version> ) - Open project and check using the render view tab that everything still renders as expected
- If anything is not working, resolve any path issues, use $HIP or $JOB to ensure paths are correct and work for both Windows and Linux
- Make sure any dynamics are cached, otherwise IFDs will take longer to generate
- On the desired Mantra node, set up render settings exactly as needed. Then on the “Driver” tab, tick the Disk File box and use the example below (recommended) or something equivalent
- Click Render to Disk and allow the IFD files to write to the specified location
-------------------------------------------
Submit from Qube Wranglerview
- In Linux, from the Applications menu, choose Render -> qubeWranglerView
- Once open, select Submit -> Houdini SimpleCmd -> Houdini (Mantra) Job
- Fill out the job Name and Range boxes at the top. Hover your mouse pointer over the Range box for example formats
- Ensure the Mantra box contains the following:
/escape/apps/x86_64/houdini/17.5.258/bin/mantra
(the 17.5.258 can be changed to specify the current version of Houdini that you’re using if it has changed since this guide) - The "Reservations" should contain host.processors=1+ (the plus sign at the end is very important, make sure it's there)
- NEW: This was not previously required but seems to be needed now. Tick the Expert Mode box at the bottom centre of the window, and find the Qube Job Environment section. Populate the Key and Value as shown below
- Hit the Browse button next to “IFD File” to navigate to your IFD files. Select your username on the left as a good starting point (this puts you in the same place as your X: drive in Windows)
- Once you’ve located your IFD files, select one and then click Open
- Click “Submit” in the bottom right of the main dialog
Once the job is submitted, you can see its progress in either WranglerView or ArtistView but you must use WranglerView to submit.
Note: To make this process faster next time, you can right-click your old job and choose "Resubmit" to open a new job with the old settings. You can then change only what you need to such as job name and frames/ifd source, without needing to set license server and mantra path etc again. You can also use the Set Defaults button, but bear in mind this also saves the settings that you'll actually end up changing each time, so it may be easier to leave it blank
-------------------------------------------
Troubleshooting Jobs
Mantra jobs generally work well when set up correctly, however with something as complex as Houdini there may be some things you need to check when the render is not working. Generally I prefer to use ArtistView for this as the colour scheme is a bit more easy on the eyes. You can use ArtistView from either Windows or Linux once the job is submitted.
Where frames have failed, use artistview to check the logs for those frames. The most useful one is usually “Stderr Log”, read the text carefully (using the scroll bar if it goes off the edge) to get any information about what has gone wrong. Often the text will point you to exactly where you need to be looking. So in the case of this example, we have:
------------------------------------------------------------
Frame 1897:527 stderr log
------------------------------------------------------------
got work: 1891:527 - running
[18:48:24] mantra: Unable to open IFD file '/escape/profiles/students/bsummers/HoudiniProjects/heliFluids/ifds/ocean_sim_V024/tops_mantra_motioncam.0527.ifd'
ERROR: non-zero child exit status: 1
------------------------------------------------------------
So in this one the important part is “mantra: Unable to open IFD file”
Then it provides us the path to the file it’s trying to use. Using this information, you can manually navigate to the location specified to see if it actually exists.
Assuming it does, you need to check if the IFD file exists.
If it does, you might then check how the file size compares to others that are known good - if it’s significantly smaller (or zero bytes) you might conclude that the IFD file didn’t create correctly. In this situation, you’d go back into Houdini and check the frame to see if it is as expected in the scene, and if it is, attempt to recreate just that IFD file.
Comments