Q100091: How to render multiple frames in Katana

Follow

SUMMARY

This article describes how to render multiple frames in Katana.

MORE INFORMATION

Rendering multiple frames within the Katana UI can currently be done through the Katana queue; while it is possible to use batch mode to render multiple frames in Katana, it does not use the GUI mode. Within a batch render command, you can use the '-t' argument to specify the frame range for your project render.

Katana Queue is a minimal render farm implementation, integrated with Katana using a custom render farm plug-in. The Katana Queue system can manage multiple renders across your local machine, or a set of machines on the same network, boosting rendering capabilities and increasing productivity.

To start a render using Katana Queue:

  1. Right-click the 3D node that you would like to start your render from.

  2. Hover over the Katana Queue option and choose the type of render you would like to start.



    The render starts and can be viewed in the Monitor tab, the Catalog tab and the Monitor Layer.

    Render jobs that are running through the Katana Queue system can be viewed in the Katana Queue tab.

NOTE:  For more information on how to use the Katana Queue, please see the Katana Queue section of the Katana User Guide.


It is currently possible to trigger a render within the Katana UI via Python. This can be done using the following example on an existing project or using the KatanaFile.Load(yourKatanaScene) command to load the project as part of the Python execution:

import NodegraphAPI
from Katana import KatanaFile
from Katana import RenderManager
def messageHandler( sequenceID, message ):
print(message)

RenderNode = NodegraphAPI.GetNode('Render') # Getting Render node
renderSettings = RenderManager.RenderingSettings()
renderSettings.frame=1
renderSettings.mode=RenderManager.RenderModes.DISK_RENDER
renderSettings.asynchRenderMessageCB=messageHandler
renderSettings.asynch=False
RenderManager.StartRender('diskRender', node=RenderNode, settings=renderSettings)

The StartRender command only supports rendering one frame at a time. However, you can render multiple frames by iterating through your frame range and executing new StartRender commands each time. This allows you to render the full desired frame range in UI mode.

To do this, you need to replace the following command:

RenderManager.StartRender('diskRender', node=RenderNode, settings=renderSettings)

With a loop through a command like:

for frame in range(1, 6):
   print('-' * 80)
   print('\nRendering Node "%s" frame %s...' % (RenderNode.getName(), frame))
    renderSettings.frame = frame
    RenderManager.StartRender('diskRender', node=RenderNode, settings=renderSettings)

 

NOTE:  If you are looking to modify the Katana project before launching your render in 'batch' mode, then you can use the above information to create a Python script that you would launch Katana with, via 'script' mode. Please note that batch mode can not be launched through Katana's GUI mode.

 

FURTHER READING 

To render multiple frames outside of the GUI or via a render farm, you can use the Katana batch mode or Katana Queue. More information and example commands are included in the Katana User Guide under the Rendering Your Scene > Batch Rendering section.

For more information on Katana Queue, please visit Rendering a Scene > Katana Queue on the Developer Guide.

    We're sorry to hear that

    Please tell us why