C4DtoA 3.2.0 introduces Arnold 6.1.0.0 and is a feature release bringing a brand new post-processing framework (imagers), support for nested dielectrics, much improved progressive and adaptive sampling, on-demand texture loading on GPU, and a variety of enhancements and fixes.
Installation
- Download the Arnold for Cinema4D plugin
- Follow these installation instructions.
System Requirements
- Cinema 4D
- R20.057 and above
- R21.026 and above
- S22.016 and above
- R23.008 and above
- R20.057 and above
Enhancements
Imagers: We're introducing a brand new framework to apply post-processing effects such as color correction, vignetting, or tone mapping. A new type of post-processing nodes called imagers operate on pixels before the output driver. Imagers can be chained. The initial set of imagers consists of:
Imagers can be added as Post Effects (called Arnold Imager) to the Render Settings. Alternatively the list of imagers and attributes can be modified in the IPR Window on the new Imagers side panel.
Imagers work both in batch and interactive contexts. While imager parameters can change interactively during rendering, adding a new imager currently requires the render to be restarted, so it's a good idea to add the ones you will need to adjust at the beginning of an interactive session. We are looking at removing this limitation in a subsequent release. (core#8368, core#9716, core#9723, core#9724, core#9867, core#9868, core#9869, core#9938).
Color Correct
Lens Effects (vignetting)
Nested dielectrics: Physically-correct reflection and refraction of rays in scenes with adjacent dielectrics, such as liquids in glass vessels, has been implemented by resolving overlapping, i.e. "nested", dielectrics via a priority system. This allows for more realistic renders of scenes such as glass containers with liquid contents and bubbles, correctly accounting for the change in the index of refraction as rays refract through the transparent media. The new dielectric_priority parameter on the standard_surface shader assigns a priority to the internal dielectric medium of the closed transparent object the shader is assigned to. These priorities specify that in an area of overlap of two transparent objects, only the highest priority dielectric medium exists (see the schematic glass of water below). The priority is simply a signed integer (default 0), which can be increased or decreased as needed to define the dielectric medium in the overlap areas. If priorities are made equal, then media are effectively blended in the overlap. The effect can be disabled globally with
options.dielectric_priorities
(Nested Dielectrics in the Advanced tab of the render settings) in case you need to revert to the legacy mode, which does not correctly compute the refractions. (core#6023)Standard setup of a glass of water with an ice cube, using the priority system. Rollover image to view the result with the global dielectric_priority: disabled (not physically correct).
Nested dielectrics examples
Improved progressive and adaptive sampling: Better sampling now results in much faster noise convergence, especially with adaptive sampling enabled. (core#9941)
Left: Arnold 6.0.4.1 - Right: Arnold 6.1.0.0 - Both images rendered using the same settings: adaptive_threshold = 0.015 (default)
- Improved performance on Windows: Arnold now runs on average 7-8% faster overall on Windows. (core#5481, core#9876, core#9975)
- Improved IPR interactivity: IPR interactivity on both CPU and GPU, especially when moving the camera in a scene with many nodes (thousands to millions of meshes, ginstances, lights, shaders, etc.), is improved. For instance, a scene with 24,433 ginstances and simple shading went from 8 fps to 14 fps on the CPU and about 3 fps to 20 fps on the GPU. (core#8662, core#9918, core#10027, core#10029)
- Improved performance in Toon on Windows: The contour_filter used for toon rendering should now be faster and scale better especially on Windows, with up to 3x speedups on AMD Threadripper 2 and up to 4x speedups on AMD Threadripper 3 CPUs. (core#7844)
- Toon AOV prefix : The
toon
shader has a new optionalaov_prefix
that will be prepended to the toon AOVs' names. For instance, ifaov_prefix
is"toon_"
, the toon diffuse AOV will be written out to"toon_diffuse"
. This can be used when you need to access both the toon AOVs and the core's LPE AOVs. (core#9823) - Improved soft creases in adaptive subdivision: Normals for soft creases follow the geometry closer for low iterations. (core#9971)
All cube edges have sharpness 3 creases. The diagram shows the new (top) and old (bottom) normals for 1, 2, 3, and 4 iterations.
- AA seed now included in EXR metadata: The AA seed of a render is now also included in EXR metadata. (core#9895)
- Improved support for MaterialX: Material nodes are now supported, shader nodes and node graph outputs can be connected to material node inputs. Node definitions implemented as node graphs can contain both Arnold native shaders and MaterialX standard library shaders. This is useful to build reusable and portable material groups and definitions, for example by using standard_surface with MaterialX patterns. The environment variable
ARNOLD_MATERIALX_NODE_DEFINITIONS
can now point to directories and load multiple node definitions (see here) (core#9204, core#9618, core#9926)
- Render selected objects: New options added to the Advanced section of the Arnold Render Settings which allows you to re-render only specific objects in the scene . This can be useful for instance to make some quick final adjustments where re-rendering the whole scene is not necessary. Note, that the final composited result may not be physically correct, since surrounding objects affected by the look change won't be updated. The feature currently works only when rendering to the Picture Viewer using the native Save option. (c4dtoa#1603)
- Improved procedural override selection: Procedural override selection inputs now have a popup button to easily search for and select a path from the available nodes inside the procedural. (c4dtoa#1712)
- Improved Tx Manager startup time: The Tx Manager dialog opens now faster when there are lot of textures in the scene and displays a status message that the texture are being processed. (c4dtoa#1705)
- Auto adjust color space combo size in the IPR window: Size of the color space combo box on the IPR window toolbar is now reduced to the size of the selected item, instead of the size of the longest item in the list. (c4dtoa#1711)
- Auto start setting in the IPR window: Added Render > Auto start when window opens to the IPR window menu to control auto start behavior. (c4dtoa#1701)
GPU Enhancements
OptiX cache location change: The Optix cache directory used to be of the form: arnold-<ARNOLD_VERSION>_driver-<DRIVER_VERSION>
. Now it is simply arnold
. This means the same cache will be used across driver and Arnold versions. Upgrading to a new version will still likely cause a lengthy JIT/cache pre-population, but it will reduce disk usage as old versions will not stay around-consuming disk space. (core#9239).
Bug Fixes
- c4dtoa#1729 Arnold Scatter does not render when motion blur is enabled
- c4dtoa#1721 Shader attributes disappear from the Attribute Editor when Xpresso is open
- c4dota#1716 Nested Extrude objects are not rendering
- core#5518 Handle interruptions properly during procedural expansion
- core#9949 mesh_light with constant black texture causes degenerate light tree case
- core#9971 Subdivs: soft creases normals different in adaptive and regular
- core#9978 Viewport API doesn't apply the correct matrix for nested procedurals
- core#10031 Only shader node connections should use node output type
- core#9361 [GPU] OptiX assert when updating textures
- core#10024 [GPU] Incorrect texture selection or error when invalidating the texture cache with GPU sparse textures
- core#10026 [GPU] Rare crash in OptiX denoiser
core#10040 [GPU] Always report minor version field of Nvidia driver as two digits
- core#10048 [GPU] Wrong progress reporting using adaptive
- usd#513 Viewport representation in points mode doesn't have the correct matrix
- usd#543 Visibility is not checked on the current frame
- usd#556 motion_start and motion_end is only set if the matrix of the prim is animated
- usd#565 Animated transforms not translated properly if set on parent XForms
- usd#569 Render delegate not picking up OSL shader parameters
- usd#570 USD procedural is not picking up OSL shader parameters
- usd#574 Incorrect display of curve widths in Solaris when changing curve basis
- usd#577 Point light should have zero radius
- usd#580 The Render Delegate's depth range is incorrect if USD is at least version 20.02
There's a known bug in Cinema 4D R23.008, that plugins are not loaded automatically in Team Render Client and Commandline render. The plugins folder (e.g. c:\Program Files\Maxon Cinema 4D R23\plugins) has to be added manually.
In Team Render Client go to File -> Preferences... -> Plugins -> Search Paths -> Add Folder...
For Commandline, specify the g_additionalModulePath environment variable.