IMPROVEMENTS IN THE NEW ARNOLD RENDERVIEW
The following video illustrates the last features in this version :
- New snapshots library, with thumbnails for each of the stored snapshots, allowing you to give them a name as well as a comment.
- Added "Test Resolution" menu. This menu works just like in the Maya native Render View, but also includes a new mode "Fit Window Size" that dynamically adjusts the render resolution to the windows size, in order to always have a 1:1 display ratio.
- Support for multiple selections in "Isolate Selected" debug shading.
- Simplified status bar information.
- "Save Image" can either take into account the LUT / Color Corrections, or ignore them.
- Added menu "Window -> Toolbar Icons", which allows you to choose which icons are displayed in the toolbar.
- Added new (optional) toolbar icons: exposure slider, 3D manipulation, list of debug shading modes.
- Only for Windows in this release: Support for EXR files, both for background images or to save rendered images. Support for Linux and OSX will come in a future update.
- LUT settings are no longer lost when the RenderView is closed.
- Support for animated background images, where frame padding is specified any number of # characters (e.g. "bkg###.jpg").
- A bug was fixed where the render camera could change unexpectedly when modifying the Render Settings.
- Removed Maya lib dependencies from RenderView (first step towards an app-agnostic RenderView).
- Upgraded the Shave & Haircut procedural to version 9v46.
- Nref is now exported as face-vertex indexed data instead of varying.
- XGen assigns the object ID attribute to the nodes it generated.
- Memory savings for vertex normals: The storage of polymesh vertex normals has been optimized, reducing memory use by 50% in typical production scenes.
- Improved Russian Roulette: The standard shader now uses more aggressive Russian roulette termination. This reduces render time but increases noise, so to get renders with similar noise levels as before either AA_samples or GI_diffuse_samples, GI_glossy_samples and GI_refraction_samples can be increased. For interior scenes with high GI depth, this is a big win and we have found 2x to 3x faster renders for similar noise levels.
- Empirical SSS profile: A more physically accurate subsurface scattering profile is now available. With a single layer, it can capture both surface detail and deep scattering. In the standard shader it can be used by setting the new parameter sss_profile to empirical. A new AiBSSRDFEmpirical API function has been made available to shader writers.
- GGX Microfacet: A new specular_distribution was added to the standard shader, with options to use the existing Beckmann distribution, and a new GGX distribution. The GGX distribution has a sharp highlight with a long soft tail, which better matches many real world materials. Using GGX also enables more accurate per-microfacet Fresnel. New microfacet BSDF functions are available in the shader API, see below.
- Per-light AOVs for volumetrics: This feature allows modifications to the intensity and color of different lights in compositing, without having to re-render. The new aov string parameter on lights writes out the light contribution to a separate AOV with a corresponding name. For example, all lights with parameter aov "fill" will contribute to the RGBA.fill and volume.fill AOVs, which then contain a subset of the light from the RGBA and volume AOVs respectively. Emission from other sources and lights that have not been assigned an aov name will contribute to the RGBA.default and volume.default AOVs. All light AOVs can be output to a single EXR driver using output syntax like RGBA.* RGBA filter driver. For the time being, light AOVs are only supported for volumes, and lighting from surfaces and the atmosphere will end up in the default light AOV. A maximum of 8 different light AOVs are supported, although a given AOV can contain a bundle of any number of lights.
- <tile> and <attr> tags in image shader: The built-in image shader node now supports the <tile> tag, and will do Mudbox-style tag replacement of the tag with _uC_vR where C and R are the column and row of the tile, respectively. The attribute tag is also supported in the form <attr:name index:name default:value>. The tag will look for the named user data (as a string). The index and default tokens are optional; if the index is used, the UINT user data is found first, and the main attribute then must be an array of strings it indexes into. Among other techniques, this allows e.g. facesets, where you can list the faceset names once each in a constant array, and then have a uniform UINT assigned to each face specifying which faceset the face is a member of. Finally, the default, if present, is substituted if the user data cannot be found for any reason.
- Multiple tags in image shader: The image shader node now also supports replacing up to five dynamic tags. Combinations of multiple attribute, tile or UDIM tags are allowed. It generally makes sense to only have one tile or UDIM tag, but if there are multiple tile/UDIM tags the last one generates the final UV coordinates into the texture.
- Adaptive subdiv for non-linear cameras: Adaptive subdivision is now supported for all built-in cameras, even non-perspective ones (cylindrical, spherical, etc). Adaptive subdiv is not yet supported for non-perspective custom cameras, but a reasonable workaround is to use subdiv_dicing_camera with the built-in camera that better matches the custom camera.
- Negative thread counts: Negative numbers in options.threads are now allowed. If specifying 0 threads means use all cores on a machine, then negative numbers can mean use all but that many cores. For example, threads=-2 means use all but 2 cores, while threads=2 means only use 2 cores. This is useful when you want to leave one or two cores for other tasks. One example of this is so that Maya can be more responsive while Arnold is rendering in the RenderView.
- Render bounds in EXR metadata: Non-zero image extents are now available in EXR metadata in all configurations (deep/flat, tiled/scanline). The smaller processing area will speed up 2D compositing operations accordingly. These bounds can be queried in Nuke to set up a Crop or DeepCrop node using the expressions below.
crop.box.x : [metadata exr/arnold/bounds_min_x] crop.box.y : height - [metadata exr/arnold/bounds_max_y] crop.box.r : [metadata exr/arnold/bounds_max_x] + 1 crop.box.t : height - [metadata exr/arnold/bounds_min_y] + 1
Shadow terminator fix: The technique used to mitigate shadow terminator artifacts in low-poly objects has been improved when dealing with concave, transparent or translucent surfaces. The obscure global option shadow_terminator_fix has been removed, since it no longer makes a difference in those cases.