7 Nov 2024
C4DtoA 4.7.8 uses Arnold 7.3.5.0 and is a minor feature release, bringing new shader presets, and Scene Export improvements.
Download Arnold for Cinema 4D from your Autodesk Account. See Download Arnold for more information about downloading C4DtoA from your Autodesk Account.
Follow these installation instructions.
OpenPBR shader presets: OpenPBR shader presets are now shipped with C4DtoA. You can load them from the Presets tab or from the Asset Browser. (C4DTOA-3242)

Standard hair shader presets: Standard hair shader presets are now shipped with C4DtoA. You can load them from the Presets tab or from the Asset Browser. (C4DTOA-3301)

Export Save settings to scene file: If regular and/or multi-pass image outputs are defined in the Cinema 4D render settings, they are now exported to the Arnold scene file during Scene Export, in case the selected image format is supported by Arnold. (C4DTOA-3277)
Export display driver to scene file: The Arnold display driver is now exported to the scene file during Scene Export as a jpeg driver, if it is the only output in the scene (native image Save is disabled and no other Arnold drivers are in the scene). Imagers assigned to the display driver are exported as well. (C4DTOA-3277)
Ask to overwrite scene files: Scene Export now asks to overwrite scene files if they already exist. (C4DTOA-3278)
Optimized Cryptomatte and GPU support: Arnold now has an internal implementation of Cryptomatte that adds support for GPUs and improves performance on CPU. Cryptomatte now consumes less memory for samples, making it easier to use higher AA settings, progressive rendering, and adaptive rendering (when properly used with FIS). In a simple scene rendered at 640x480 resolution with three cryptomattes the below table shows improvements in peak memory. (ARNOLD-11042)
| CPU | 7.3.4.1 | 7.3.5.0 |
|---|---|---|
| fixed-AA | 1346MB | 442MB |
| progressive | 3433MB | 532MB |
| adaptive | 8584MB | 441MB |
| GPU | 7.3.4.1 | 7.3.5.0 |
|---|---|---|
| fixed-AA | - | 799MB |
| adaptive | - | 810MB |
specular_weight parameter was increased above 1. This has been corrected so that the Fresnel conserves energy in this case, saturating to a mirror reflection in the limit of high specular_weight.Improved instancing in the alembic procedural: Instanced geometries are now better handled in Alembic. This fixes the known issues with make_instance, which is now enabled by default. (ARNOLD-15209, ARNOLD-8364, ARNOLD-8924, ARNOLD-7818)
Faster OpenVDB volume intersection: Intersecting OpenVDB volumes are optimized for many-cores. Scenes where volume::intersection is a sizable component of render time can see large speedups. One scene where it accounted for 73% of render time on a 128-core machine saw the volume::intersection time drop to 16% of total time, for an overall 3x speedup in render time. (ARNOLD-15448)
Faster uv_camera baking: The uv_camera.grid_size default is now 0 instead of 16, where 0 specifies that the grid_size is automatically chosen. Using the new default, baking a sphere with 800k triangles is now 6.5x faster than the previous default. (ARNOLD-15441)
Add more options settings to image metadata: Images with metadata, such as EXR files, now include arnold/AA_samples_max, arnold/AA_adaptive_threshold, arnold/fis_filter, and arnold/fis_filter_width metadata. (ARNOLD-15521)
Support element linking of array parameters in ramp shaders: Arnold GPU now supports the linking of individual ramp parameter components for the position, value, color, and interpolationparameters. (ARNOLD-7120)
OSL version 1.13.3.0: OSL has been upgraded to version 1.13.3.0. See OSL release notes for details. (ARNOLD-15319)
MaterialX OSL closure support: the OSL closures defined by MaterialX (v1.38) for definition of layered physical materials have been ported to Arnold. For example, all the closures needed to implement the OpenPBR are now available in OSL. See OSL Shaders for more information
Hydra mode in the usd procedural: A new parameter hydra can be used to render the USD data through a Hydra framework. This supports interactive updates, and can be used to reproduce the same behaviour as a Hydra render delegate (usd#2109 usd#2107 usd#2019 usd#2017 usd#2003)
transform_keys primvar: When the primvar arnold:transform_keys is set, it controls the number of time samples used for the matrices of Arnold nodes (usd#2111)
Arnold Cameras in Hydra: Arnold cameras (vr, cylindrical, spherical, uv, fisheye) are now supported in Hydra. You create the Arnold cameras as USD built-in cameras, with a string primvar arnold:camera that specifies the Arnold camera type. (usd#1738 usd#2082)
Improved USD export that better supports Hydra: USD exports now support Hydra, so that scenes from Maya or 3ds Max now render as expected in Houdini Solaris.
Fixed mismatches between USD and Hydra renders: Several changes were done, either on the procedural or the render delegate, in order to have a consistent behaviour in both code paths.
UsdPlane support: UsdPlane primitives were previously ignored, and are now rendered in Arnold. (usd#2058)
Improved support for ArnoldProceduralCustom primitives: ArnoldProceduralCustom primitives are now supported like other geometric primitives, including instancing and visibility settings. (usd#2064)
Profiling / Stats: Render settings can now specify filenames to output arnold profiling or stats files (usd#1118)
Node API: Added new AiNodeAddDependency to declare an update dependency between a consumer node and a specific parameter on a producer node (a consumer can depend on a producer through multiple parameters). Added AiNodeClearDependency to clear the dependency between two nodes (for all parameters). Finally, the previous API is deprecated. The same behaviour can be replicated by using the new AiNodeAddDependency API and passing an empty or null string for the parameter, to create a dependency that covers all parameters (this should be used only when absolutely necessary). (ARNOLD-15483)
AI_API void AiNodeAddDependency(AtNode* consumer, const AtNode* producer, const AtString param);
AI_API void AiNodeClearDependency(AtNode* consumer, const AtNode* producer);
AI_API AI_DEPRECATED void AiNodeAddDependency(AtNode* consumer, const AtNode* producer);
Limit node update recursion: Previously, node updates were propagated up the parent chain for all node types. We now do this for shape nodes only. This can improve node update time. (ARNOLD-15492)
Avoid unnecessary node updates: Resetting a node parameter to the current value will no longer cause a node update. (ARNOLD-15402)
Per-parameter update dependencies: Previously, a node update dependency caused a node to be updated whenever the dependency node was modified. We now define these dependencies based on parameters, so the node update is triggered only when one of the specified parameters on the dependency node was modified. (ARNOLD-15483)
options.camera so that the shader is updated when a new camera is set. (ARNOLD-15483)