Download and Installation
Arnold, KtoA, and other downloads are available here. Installation instructions come with KtoA, but can also be viewed here: Installation.
Important Note
This is a major release of KtoA based on the new Arnold 5.0 that brings with it numerous incompatibilities with previous (KtoA 1.1.x) releases. Many incompatibilities are resolved by simply running the UpdateArnoldNodes
shelf script after loading previous katana files.
Of note, to bring your assets and lookdev in line with Arnold 5 you will need to make changes to your shading networks. Most older shaders will continue to work, but you should expect visual differences. It is highly recommended to move to the new standard set of shaders, and check existing shader connections and parameters. Also, for objects you should check ray types such as visibility, double-sidedness, sample counts and ray depths.
Compatibility
- Arnold: 5.0.0+
- Katana: 2.5v4+
- Platforms:
- Linux: x86-64, RHEL 6+ or compatible glibc
- Windows: 7+ on x86-64, with VC++ 2015 redistributable installed
Enhancements
Update to Arnold 5.0.0.0: KtoA is now updated to and requires Arnold 5.0.0.0, bringing many changes and enhancements. See Arnold 5 release notes for more information. (#124, #128, #131)
New standard shaders: The old
standard
andhair
surface shaders have been deprecated in favor of new layer-based shadersstandard_surface
andstandard_hair
. Also, thevolume_collector
shader from the common shaders is deprected and supplanted bystandard_volume
. The old shaders will still work, but it is highly recommended that assets be ported to use the new shaders. They bring many benefits: propery Fresnel handling, energy conservation, per-layer normals, and are more physically-based right out of the box. The parameters are quite different from the old shaders, but are quite intuitive for those who are familiar with layer-based shading systems such as alShaders. Please see the following areas of the Arnold documentation for the new standard shaders: (#124)New common shaders: The common shaders are now built in to Arnold itself; in addition, new shaders have been added:
curvature
,flake
,camera_projection
,complex_ior
,two_sided
,normal_map
andvector_map
. (#129)Update OpenVDB plugin: The OpenVDB volume/implicit plugin has been updated for Arnold 5, and is now built-in to Arnold itself. (#130)
Build system updated: For developers, the build system is now unified on both Linux and Windows. This shouldn't have any effect on end users. (#135)
OSL and closure shaders: Open Shading Language, along with C++ closure-based shaders are now the main shading mechanism in Arnold. Note that .osl or compiled .oso shaders must be placed in the plugin searchpath in order to be found. Arnold will attempt to compile the shaders to .oso if only .osl shaders are found. Please see the documentation for more information. (#125)
Light path expressions: Previously a holdover from the SPI days of Katana, there was an array parameter
lightExpressions
on theArnoldOutputChannelDefine
node which did nothing in Solid Angle's version of Arnold. That has been removed, and instead a singlelightPathExpression
parameter has been added. When it is filled out, shaders do not need to register AOVs and instead closure shaders will automatically detect when the light path expression has been met and will write to the output. Also,lightGroups
has some additional controls on which lights groups are included in the output, and whether they are written out to separate AOVs in an EXR or TIFF file. A custom light group may be set as well. Please see the documentation on LPEs for more information. (#145)Visible lights: Skydome lights are now visible by default in camera rays, and also perfect reflection and refraction rays. Note that skydome lights will also occupy the background if the
camera
parameter on any skydome light is set to greater than zero. (#124, #128)Arnold 5 update shelf script: The update shelf script has been extended to do some of the legwork of updating projects from KtoA 1.1 / Arnold 4.2 to KtoA 2.0 and Arnold 5.0. It also will allow undoing its effects properly after it runs, and it won't deselect any selected nodes in the node graph. (#132)
Per-object motion blur customization: Using
ArnoldObjectSettings
objects can have their motion range, number of transform samples, and/or number of deformation samples customized from the global motion samples set inRenderSettings
. (#143)OpenVDB improvements: The
ArnoldOpenVDBSurface
andArnoldOpenVDBVolume
nodes are much improved; they automatically provide the bounds of any data in the viewer, and they have transform parameters that are interactively editable with the viewer manipulators. They have improved defaults, help hints, and UI management of step parameters. (#48)Yeti improvements: Yeti is now given frame-relative motion sample times (per Arnold 5). It will try to display the bounding box of the Yeti cache if the
pgYetiCacheInfo
executable is in the PATH. Users can now also manipulate the transform of the Yeti location in the viewer. (#154, #106)Deferred expansion removed: Procedurals, volumes and implicits now all load at startup and are immediately expanded in Arnold. This may cause a slightly higher startup time, but generally results in faster renders overall. This is equivalent to setting
proceduralExpansion
toat startup
. That option has been removed, and any consideration offorceExpand
attributes on locations also has been removed. When writing to .ass files, however, a new parameteropenProcedurals
on theArnoldGlobalSettings
node has been added to control whether procedurals are expanded in the resulting exported .ass file. (#153)Bounds slack for all volume plugin nodes: For all volumes that are backed by a plugin, such as OpenVDB volumes, the
bounds_slack
parameter inArnoldObjectSettings
can be set. This is a standard convention for volume plugins in Arnold, giving space for shaders to add positional variance to add resolution to volumes beyond what is stored on disk in a grid. (#153)Multi-threaded scene translation: With the removal if deferred procedural expansion, previously parts of the scene would be translated in parallel inside of the katana procedural, but now it is all taken care of up front. Scene translation is now multi-threaded, where in many cases locations can be processed in parallel. A new control,
translationThreads
in theArnoldGlobalSettings
node has been added to customize this. Note that in many cases, having a high number of translation threads is counterproductive; the appropriate range seems to be between 4-12 threads, depending on scene complexity. (#155)Randomized child order: Particularly in batch rendering, when many frames start on a render farm at the same time, network file servers can become congested if the same file resources (such as Alembic files) are requested all at the same time. Randomizing the order in which locations are processed (by frame) may help alleviate this bottleneck. This is not active by default, as it does introduce a small amount of overhead, but may help with some network and NAS setups. (#155)
Pref on pointcloud locations: The attribute
geometry.point.Pref
is now recognized and translated as varying user data onpointcloud
locations. (#139)Deprecation warnings for shaders: Shaders that are marked deprecated will now have a
__warning__
parameter added with a message about the shader being deprecated, so that it's obvious which are slated for future removal. Currently, the set of deprecated shaders are:hair
(usestandard_hair
instead),skin
(usestandard_surface
),standard
(usestandard_surface
), andvolume_collector
(usestandard_volume
). (#162)Host information in logs and ass files: host app information is now added to logs and exported ass files indicating the KtoA version, OS, katana build version, and katana runtime version. (#165)
Incompatible Changes
Removed arnoldBump shader slot: The new standard shaders take a normal vector as a parameter for each layer, so it is no longer needed nor advisable to modify the global shading normal in a shader network, but instead plug in the modified normal directly to each corresponding shader parameter. As such, the bump shader slot has been removed in Arnold 5, and any shader or shader networks that were connected to this slot in KtoA will now be ignored. These will need to be moved into the regular surface shading network instead. (#142)
Auto step size as default for OpenVDB: For OpenVDB volumes and surfaces, a new
auto_step_size
parameter has been added to make it obvious when using the natural step size from grid data. If you previously customized the step size, you will need to turn offauto_step_size
to restore your previous customization. It is usually preferred to use the auto step size and instead modifystep_scale
to go relatively higher or lower. (#48)Removed unneeded filter types: Various infrequently-used and unneeded pixel filter types have been removed from
ArnoldGlobalSettings
. If you used one of these, it will revert back to the gaussian filter. (#128)Plugins as node entries: Procedurals, volumes and implicits are all now implemented as their own node types rather than just being a DSO referenced from the
procedural
,volume
andimplicit
Arnold nodes. KtoA helper Katana nodes for creating them have been updated, but for your own procedurals you will need to setrendererProcedural.node
(string) to be the name of the node type your plugin provides. You can still use therendererProcedural.dso
path to have KtoA load your plugin, but you can also put it in the procedural searchpath or theARNOLD_PLUGIN_PATH
environment variable. (#126, #127)New motion blur specification: Internally, KtoA has always used frame-relative motion samples and send them to Arnold as such (except when
compatible_motion_blur
was turned on). Arnold itself has removedtransform_time_samples
anddeform_time_samples
in favor of uniformly distributing motion samples betweenmotion_start
andmotion_end
float parameters, and KtoA now honors this. If there are non-uniform motion samples in Katana, KtoA will sample uniformly from them; this means if you have complex motion that needs particular attention, you may need to increase the number of motion keys to capture it. (#143)OpenVDB node parameter changes: The
ArnoldOpenVDBSurface
andArnoldOpenVDBVolume
nodes have some parameter changes; please run the update shelf script to get the new parameter names. (#130)Increased default ray depths: The default ray depths are now one each for diffuse and specular bounces, eight for transmission bounces, but still zero for volume indirect. If you had left those values at the defaults in your katana recipes, you may now have some indirect diffuse and specular light show up where you didn't have it before, with a corresponding increase in render time. If this is incorrect for your scene, go set them lower in the
ArnoldGlobalSettings
node. (#124)Ray types: For background visibility, object visibility, autobump visibility, and sidededness a few ray types have changed.
AI_RAY_DIFFUSE
has been changed toAI_RAY_DIFFUSE_REFLECT
.AI_RAY_GLOSSY
has been changed toAI_RAY_SPECULAR_REFLECT
andAI_RAY_REFLECTED
has been subsumed into it as well.AI_RAY_REFRACTED
has been changed toAI_RAY_SPECULAR_TRANSMIT
, andAI_RAY_DIFFUSE_TRANSMIT
has been added to differentiate rays that go below the surface normal but are too diffuse to be considered glossy/specular. The update script honors these interpretations, but you should consider double-checking your object settings for any you have customized to make sure they still do what you expect. (#124, #132)Additional changed and removed parameters: (#128)
subdiv_dicing_camera
has been moved from per-polymesh settings to be a global optionauto_transparency_threshold
,auto_transparency_mode
andenable_fast_opacity
have been removed as they are no longer neededignore_direct_lighting
has been removed as the AOV system can be easily used to achieve similar outputbump_space
has been removed as bump is always done in object space nowenable_displacement_derivs
has been removed, and displacement derivatives are now always calculatedGI_glossy_samples
andGI_glossy_depth
have been renamed toGI_specular_samples
andGI_specular_depth
, respectively, and include perfect specular and glossy reflections.indirect_glossy_blur
has been renamed toindirect_specular_blur
.GI_refraction_samples
andGI_refraction_depth
have been renamed toGI_transmission_samples
andGI_transmission_depth
respectively, and include all forms of below-surface rays.GI_reflection_depth
has been removed; this is subsumed intoGI_specular_depth
that handles both perfect and glossy specular reflectionsGI_single_scatter_samples
has been removed; the other forms of subsurface scattering should be used instead of the old single-scatter modeGI_falloff_start_dist
andGI_falloff_end_dist
have been removed in favor of physical falloff always being on. Thedecay
light filter can still be used to customize falloff.light_gamma
,shader_gamma
andtexture_gamma
have been removed, as it is now expected that all inputs are color-corrected to be stored linearly now (as has been true for Katana for a long time). Textures may have their input colorspace specified via thecolor_space
parameter on theimage
shader node. Arnold 5 itself also supports customcolor_manager
nodes for even more color space management options.bucket_scanning
has had rarely-used bottom, right, and woven modes removedtexture_glossy_blur
has been renamed totexture_specular_blur
shader_searchpath
has been renamed toplugin_searchpath
Bug Fixes
#152 Pixel aspect ratio set incorrectly
#148 Intermittent crash using ArnoldOutputChannelDefine
#151 Viewed (blue) node fails update script if it gets changed
#157 Use render interrupt instead of abort when pausing a render
#158 texture data on instances uses wrong number of polygons