4.6.6 - Arnold for Cinema 4D
4 October 2023
C4DtoA 4.6.6 uses Arnold 7.2.4.0 and is a minor feature release.
Installation
- Download the Arnold for Cinema4D plugin
- Follow these installation instructions.
Cinema 4D Compatibility
- R25.010 and above
- S26.013 and above
- 2023.0.0 and above
- 2024.0.0 and above
Note: Known issues in the legacy Arnold Shader Network Editor since Cinema 4D S24:
- Drag & drop nodes to the node editor does not work as expected:
- Drag & drop an Arnold Material to create a reference. A Cinema 4D Object Operator node is created instead of an Arnold Material reference node.
- Drag & drop an object to create an object reference. A Cinema 4D Object Operator node is created instead of an Arnold object node.
- Drag & drop a Vertex Map to create a Vertex Map shader. A Cinema 4D Object Operator node is created instead of an Arnold Vertex Map shader.
- Ctrl + drag a shader in the node editor in S24 creates two copies instead of one. shift + drag and Shift + Alt + drag does not work.
Note: Adding shaders to a Node Material from python crashes Cinema 4D 2024.
Enhancements
- Toon shader - improved detection of internal edges: The toon shader now does a better job of detecting angle threshold silhouettes that are internal to a single object. This is most apparent in the regions between nearly parallel surfaces of an object that are at different distances to the camera. (ARNOLD-10560)
![]() |
![]() |
7.2.3 | 7.2.4 |
![](https://help.autodesk.com/cloudhelp/ENU/AR-Cinema4D/images/brick-montage.jpg)
Improved mesh-lights sampling and update: Improved time to first pixel (up to 10% for scenes containing many large meshes) and overall render time (up to 5% for scenes with multiple flat mesh lights). (ARNOLD-13639)
Improved interactive performance: Multiple optimizations to make interactive renders snappier by improving the interruption rate when modifying the scene. (ARNOLD-9833, ARNOLD-14077, ARNOLD-14083)
Improved Global Light Sampling behavior around flat lights: Reduced noise with Global Light Sampling for surfaces near or behind flat lights (disk or quad lights). (ARNOLD-13192)
![]() |
![]() |
7.2.3 | 7.2.4 |
Use dependency graph automatically for interactive renders: For interactive renders (IPR), the dependency graph is always enabled, regardless of the value of
options.enable_dependency_graph
. Interactive rendering updates for scene changes are improved by (and in some cases require) the dependency graph, so enforcing this setting avoids potential crashes. (ARNOLD-10732)Added support for alpha channel output in PNG driver: Added new boolean parameters
skip_alpha
andunpremult_alpha
to thedriver_png
node. They behave in the same way as in the TIFF driver, withskip_alpha
ignoring the alpha channel, andunpremult_alpha
selecting either unassociated alpha (on) or associated alpha (off). Please note that PNG files with associated alpha are not supported by the PNG standard. (ARNOLD-10540)OpenColorIO Alias support The OCIO color manager now supports the use of OCIO color space aliases. (ARNOLD-13998)
USD Enhancements
- Custom MaterialX node definitions MaterialX node definitions placed under a folder defined by the environment variable PXR_MTLX_STDLIB_SEARCH_PATHS are now supported when rendered with Arnold, through USD or Hydra usd#1632. There is no longer any restriction on the node definitions prefix and naming convention usd#1603.
- ArnoldProceduralCustom support in Hydra Primitives ArnoldProceduralCustom are now supported inside of Hydra, and allow to render 3rd party Arnold procedural nodes usd#739.
API Additions
- AiMaterialxGetNodeEntryFromDefinition: Given a MaterialX node definition, returns the corresponding Arnold node entry. Arnold searches for node definitions in the materialx directory in the Arnold distribution and in any directory listed in the ARNOLD_MATERIALX_NODE_DEFINITIONS environment variable. The function returns the relevant Arnold node type if the node has a native Arnold implementation, or the OSL node type if the node has an OSL implementation only, so you can safely call AiMaterialxGetOslShaderCode with the same node definition. (ARNOLD-13957)
Incompatible Changes
- AiUniverseGetOptions() no longer returns "sanitized" threads count:
AiUniverseGetOptions()
returns the options set by the user, whileAiRenderSessionGetOptions()
returns the options actually used by the render. Previously this behavior was not followed foroptions.threads
, and both the universe and render session's options contained a "sanitized" version of the thread count. For example, a thread count of 0 was interpreted as "autodetect" and sanitized to be the number of logical cores. Now, querying the universeoptions.threads
can return 0 or other values that do not reflect what is being used. If the sanitized version is needed, replaceAiUniverseGetOptions(universe)
withAiRenderSessionGetOptions(AiUniverseGetRenderSession(universe))
. (ARNOLD-14083)
Bug Fixes
- ARNOLD-12005 - Hang when toggling denoiser ('N' key) in kick
- ARNOLD-12205 - [GPU] Rare crash when process is terminating
- ARNOLD-13709 - Invalid render when new OSL shaders are created interactively
- ARNOLD-13823 - Correct scene scale conversion for nested procedurals
- ARNOLD-13983 - Crash in IPR when enabling the OptiX denoiser, light mixer, or Arnold denoiser imagers
- ARNOLD-13995 - Incorrect motion range in the instancer
- ARNOLD-14065 - Artifacts with thick curves when scaling is applied
- ARNOLD-14067 - Arnold MaterialX node definitions do not expose multiple outputs
- ARNOLD-14074 - shidx not being gathered for alembic.material_attrbute string attribute
- ARNOLD-14099 - Wrong separator used in the materialx paths
- usd#1693 - Fix regression with Geometry lights in Hydra
- usd#1696 - Fix regression with Cryptomatte in Hydra
- usd#1613 - Invisible Hydra primitives should ignore arnold visibility
- usd#1641 - Ensure nodes created by the render delegate have the correct parent procedural
- usd#1673 - UsdUvTexture ignores missing textures in hydra
- usd#1675 - Fix UsdUvTexture default wrap modes and uvset coordinates.
- usd#1657 - Fix a motion blur sampling bug happening when a mesh has facevarying indexed normals and different number of indices per key frame
- usd#1634 - Support curves orientations identically between USD and Hydra / Prevent errors due to bad curves orientations count
System Requirements
- Windows 10 or later, with the Visual Studio 2019 redistributable.
- Linux with at least glibc 2.17 and libstdc++ 4.8.5 (gcc 4.8.5). This is equivalent to RHEL/CentOS 7.
- macOS 10.13 or later.
- x86_64 CPUs need to support the SSE4.1 instruction set. Apple Mac models with M series chip are natively supported.
- GPU rendering works on Windows and Linux only and requires an NVIDIA GPU of the Ada, Ampere, Turing, Volta, Pascal, or Maxwell architecture. We recommend using the 525.89 or higher drivers on Linux and 528.49, or higher on Windows. See Arnold GPU for more information.
- The cache also needs to be re-populated after installing a new Arnold version, updating to a new NVIDIA driver, or changing the hardware configuration of GPUs on the system. More information can be found here.
- OptiX™ denoiser requires an NVIDIA GPU with CUDA™ Compute Capability 5.0 and above.