Download and Installation

Arnold, KtoA, and other downloads are available here. Installation instructions come with KtoA, but can also be viewed here: Installation.


  • Arnold: 5.1.0
  • Katana: 2.5v6+, 2.6v1+, 3.0v1+
  • Platforms:
    • Linux: x86-64, RHEL 6+ or compatible glibc
    • Windows: 7+ on x86-64, with VC++ 2015 redistributable installed


  • Update Katana version support: Katana version support is updated to 2.6v4 or newer, and initial support for the new Katana 3.0 series. (#278)

  • Update to Arnold 5.1: This version requires Arnold 5.1.0 or newer, and is not compatible with Arnold 5.0.x versions. The new core version brings many enhancements, including adaptive sampling, progressive sampling, non-photorealistic rendering (toon shading), structured stats and profile timing output, and much more. Please see the release notes for more information. (#248)

    • Adaptive sampling controls: ArnoldGlobalGlobalSettings has options for adaptive sampling, which must be turned on and AA_samples_max must be set higher than AA_samples. Also, AA_samples should be set to a reasonable value higher than one so that the adaptive engine has enough base samples to determine if more sampling is necessary.

    • Progressive sampling controls: ArnoldGlobalSettings has more options for progressive rendering, including a new mode where one sample per pixel is accumulated and shown as it renders, which is useful for live and preview renders but always disabled for batch/disk renders. It performs less well currently for higher AA sample counts, but it works well in conjunction with adaptive sampling. AA_enable_progressive has been renamed to enableBlockyProgressive as there are now two progressive concepts, the blocky lead-up to the final AA pass and then accumulating the final AA_samples worth of samples in the final pass.

    • Non-photorealistic rendering: the toon shader has been added to handle most typical toon, cell, and other non-photorealistic rendering techniques. If feature outlines are desired, it needs to be used in conjunction with the new contour_filter pixel filter, set on the AA_filter parameter of ArnoldGlobalSettings. The filter width of the contour filter determines the overall line width, and the toon shader allows those to be narrowed artistically from there as desired.

    • Denoising: two forms of denoising are provided: one is a Nvidia GPU-based denoiser, available by simply adding an output channel with the same name as another but with a unique name (e.g. "_denoise" appended to the end) and the denoise checkbox ticked. It renders at the same time as the regular AOV of the same name. The second denoising method is a post process available by running the noice command-line tool. It requires an additional RGBA/primary output channel with a variance filter applied. (#271)

    • Device selection: In conjunction with the GPU-based denoiser, there are now controls in ArnoldGlobalSettings to control which devices participate. There is both auto-selection based on a pattern and minimum available GPU memory, and manual selection of GPU devices.

    • Shader enhancements: New shaders layer_shader and layer_rgba have been added to composite both closures and regular texture/ other colors together. The standard_hair and standard_surface shaders have gained new ID AOV outputs, for use in generating ID masks for any purpose, similar to what alShaders had in Arnold 4.2.x. Other shader changes have been added as well, please see the core release notes for a full list.

    • Stats and profile output: Structured statistics (in JSON format) can be written to a file, as well as detailed profile information about where Arnold is spending its time during rendering can be written to a separate JSON file. The latter can be loaded into the Chrome browser to see a timeline of rendering. These are accessible in ArnoldGlobalSettings in the verbosity section.

    • Parallel scene initialization: This is now on by default, as it is more robust than in previous Arnold versions. It should help improve render startup times.

    • Operators: Late-binding changes can be applied to the scene inside of Arnold using operators, which can modify the scene in many ways. There are various operators available out of the box, including parameter_set and materialx. Create a material with the arnoldOperator shader slot and operator nodes, and then add the resulting material to ArnoldGlobalSettings via the operators parameter. (#274)

  • Faster live rendering: Live rendering is more responsive, with a generally better more interactive experience. For blocky progressive renders, for all but the final pass sample settings will be automatically adjusted up or down to achieve a target frames-per-second display rate. Bucket corners can be turned off in ArnoldGlobalSettings, but also will not be displayed anyway until a bucket's computation time has gone a little while so there aren't bucket corners constantly spamming the monitor. Finally, a min AA sample setting for preview and live rendering can be customized in ArnoldGlobalSettings so that rendering isn't more blocky than desired when modifying the scene. AA_progressive_samples has been removed, as the sample progression and sample adaptation is now automatic. (#248)

  • Revamped live rendering: Live rendering accounts for more changes, such as ArnoldObjectSettings changes are now honored. (#202, #20)

  • New logging controls: Two additional logging level controls were added, for INFO and STATS. Progress percentage in the console is included for the stats level. (#208)

  • Improved sample clamping settings: Sample clamping settings are now in their own sub-page of ArnoldGlobalSettings, and AA_sample_clamp no longer has the nonsensical and huge default value. You must explicitly turn on enable_AA_sample_clamp to activate it now. (#255)

  • Custom camera plugins: Custom cameras are now supported, by creating a shader with the arnoldCamera terminal and using the custom camera type as the shader. Note that you must have your camera plugin available via the ARNOLD_PLUGIN_PATH environment variable for it to be recognized. (#63)

  • Per-camera settings: Cameras can now have settings specific to each via the ArnoldCameraSettings node. If this node is not used, then the old camera settings on ArnoldGlobalSettings are used instead as a fallback. It is recommended to set per-camera settings and not rely on the global fallback settings. (#269)

  • Camera exposure: The built-in Arnold control for camera exposure is now available on the ArnoldCameraSettings node. (#272)

  • Resolution ratio controls: In ArnoldGlobalSettings in the camera section there is now an adjustAspect parameter for interpreting the aspect ratio from the image resolution, as well as the pixel aspect ratio from the named resolution in RenderSettings. It defaults to making no adjustments for image aspect, but applies the pixel aspect ratio from RenderSettings chosen resolution. The various choices can choose to adjust for image aspect, and or the RenderSettings resolution's pixel aspect ratio when they are non-square. For all choices except "no adjustments" KtoA will properly embed the pixel aspect ratio into any rendered EXR/TIFF metadata. (#277)

  • Pixel aspect ratio override: There is a new parameter pixel_aspect_ratio on ArnoldGlobalSettings that will override the pixel aspect ratio directly for e.g. anamorphic formats when that isn't set in the resolutions XML file for the given resolution. This aspect ratio is the pixel width divided by the pixel height, and is effectively applied by adjusting the viewable aperture on the camera by Arnold itself. The pixel aspect ratio is embedded as metadata in any rendered TIFF/EXR images. (#277)

  • Color manager: The Arnold global color manager can be created in a Material node with the arnoldColorManager terminal, and then the resulting location set on ArnoldGlobalSettings via the color_manager parameter. By default, KtoA provides the OpenColorIO manager, but the SynColor manager can also be used if the plugin from MtoA is included in ARNOLD_PLUGIN_PATH. (#146)

Incompatible Changes

  • Progressive control renamed: AA_enable_progressive has been renamed to enableBlockyProgressive to match the new enable_progressive_render. Please run the update shelf script to move your parameter to the new name. (#248)

  • AA_samples new default: AA_samples now defaults to three, instead of one, to match the other DCC plugins. The core still defaults to one. (#248)

  • Removed legacy parameter names: Recognition of the following legacy parameters has been removed in favor of their newer names that have already been supported for some time. The update shelf script will still convert these parameters to their newer names, however, so to help your scenes be compatible, just run the update script. (#199)

    • Camera parameters: aperture_nsides, aperture_ratio, and aperture_relax

    • Polymeshes:  subdiv_pixel_error, adaptive_metric, autobump, smoothing (as a float attribute; it needs to be an int attribute)

    • Volumes container types:  bounds_slack

    • All object types: Visibility (with a capital 'V'), instanceID

  • Sample clamping defaults: AA sample clamping is off by default, as before, but requires turning on enable_AA_sample_clamp to activate it. If you previously had a clamp value set, you will need to re-enable by checking enable_AA_sample_clamp. (#255)

  • Default image aspect adjustment: Previously, the height adjustment due to image resolution was always applied, but didn't take into account the RenderSettings resolution's pixel aspect ratio. This corresponds to the new adjustAspect parameter being set to "adjust height". The new default is "no adjustment, include pixel aspect ratio" instead to accommodate cameras coming from Alembic or USD where they already have the screen window changed to accommodate the image and pixel aspect ratios. When that isn't the case this default may result in a vertical stretching or squashing based on the image resolution defined in the resolution (see the file "$KATANA_ROOT/plugins/Resources/Core/Resolutions/FoundryResolutions.xml" for the built-in resolutions and their pixel aspect ratios). To compensate for this for arbitrary resolutions, you may need to set adjustAspect to one of the adjust width or height options, or alternatively set RenderSettings.adjustScreenWindow to adjust the height or the width. (#277)

Bug Fixes

  • #246 Object settings is not applied unless the full path is given to the primitive

  • #4 Track error states and abort earlier before AiRender()

  • #20 ArnoldObjectSettings changes ignored during live rendering

  • #224 Exit gracefully from significant errors

  • #230 Don't abort when pausing live rendering


  • No labels