Custom Integrators in Katana

Custom Integrators in Katana

Adding a custom integrator to the Katana UI is straightforward with RfK, however it is not dynamic; you'll need to manually add your integrator information to the PrmanGlobalSettings node. Currently there is no mechanism for dynamically loading new integrators into a running Katana session.

In PrmanGlobalSettings.xml you'll need to add the name of your new integrator to the integrator parameter option list under the integrator section (i.e. create a new option value "CustomIntegrator" for the attribue prmanGlobalStatements.integrator.integrator). Then you'll need to create a new section to define the integrator and its parameter list (i.e. create a new attribute called prmanGlobalStatements.integrator.CustomIntegrator

For example:

[...]
<group name='integrator' closed='False'>

    <string name='integrator'  widget='popup' default='none'
            help='RIS Integrator setting (PRMan19 only).'
            options='CustomIntegrator|PxrVCM|PxrPathTracer|PxrDirectLighting|PxrDefault|PxrDebugShadingContext|PxrValidateBxdf'/>

    <group name='CustomIntegrator' closed='False' conditionalVisOp='equalTo'
            conditionalVisPath='../integrator'
            conditionalVisValue='CustomIntegrator'>
        <help>Integrator which does some fast and amazing integration.
        </help>
        <int name='mergePaths' default='1' widget='checkBox'>
            <help>
            </help>
        </int>
        <int name='connectPaths' default='1' widget='checkBox'>
            <help>
            </help>
        </int>
    </group>

    [...]

The RfK plugin will automatically pick up the new integrator and determine the names and types of the parameters based on the attributes created when the PrmanGlobalSettings node is built.