C4DtoA 4.3.0 uses Arnold and is a major feature release bringing several improvements to volume shading, improvements to imagers in the IPR window, faster procedurals in the viewport and a new C++ API for third-party developers.

Cinema 4D S24, R25 and S26 related issues in the legacy Arnold Shader Network Editor:

  • 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.


System Requirements

  • Cinema 4D
    • R21.026 and above
    • R23.008 and above
    • S24.111 and above
    • R25.010 and above
    • S26.013 and above

Rosetta2 mode for M1 Macs is no longer supported by Cinema 4D S26. This means Arnold can not run on Apple Mac models with M series chips in Cinema 4D S26 at the moment. M1 support is planned in a future release.

  • 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.
  • CPUs need to support the SSE4.1 instruction set. Apple Mac models with M series chips are supported under Rosetta 2 mode.
  • GPU rendering works on Windows and Linux only and requires an NVIDIA GPU of the Ampere, Turing, Volta, Pascal, or Maxwell architecture. We recommend using the 495.46 or higher drivers on Linux and 511.09 (Quadro/GeForce), or higher on Windows. See Getting Started with Arnold GPU for more information.
  • Optix™ denoiser requires an NVidia GPU with CUDA™ Compute Capability 5.0 and above.


  • New C++ API: The C++ API has been completely rewritten. Third-party developers must update their C4DtoA extensions to the new API. Examples can be found in the $C4DTOA_INSTALL/api/examples folder. (C4DTOA-2677)
  • Imager IPR window toolbar button: A new button is added to the IPR window toolbar to enable/disable imagers in the scene and interact with imagers via its context menu. (C4DTOA-2744)
  • Rename imagers from the IPR window: Imagers can now be renamed from the Post panel of the IPR window by double click on the name. (C4DTOA-2772)
  • Improved procedural viewport performance: Displaying shapes of an Arnold Procedural in the viewport is now much faster. (C4DTOA-2113)
  • Displacement height default value: Displacement Height default value in the Arnold tag has been changed from 100 cm to 10 cm. (C4DTOA-2763)
  • Status info: Long running tasks during rendering (e.g. compiling shaders on GPU, etc.) are now displayed in the IPR window and Picture Viewer status bar. (C4DTOA-2043)

  • Dual-lobe phase function for standard_volume: A new phase function model has been implemented for the standard_volume shader, which is a mixture of two lobes rather than a single lobe as before. This provides a more realistic approximation to the physical phase function of scattering media such as clouds. The new model adds two new parameters, scatter_secondary_anisotropy (in [-1,1]) and scatter_secondary_anisotropy_mix (in [0,1]).  (ARNOLD-9335).

The cloud on the left (below), using the default anisotropy (0) settings, does not show much forward scattering. The center image (anisotropy 1: 0.7, anisotropy 2: 0.7) shows a strong "silver lining" at the rim of strongly forward scattered light from the sun behind. The cloud on the right (anisotropy 1: -0.4, anisotropy 2: 0.7) adds a secondary phase function lobe which fills in the bulk of the cloud with back-scattered light while maintaining the silver lining.

The image below shows the full parameter space of the new dual-phase function model (each cell shows the phase function shape for a given combination of lobe anisotropies, which varies as the lobe mix weight is animated). The blue curves correspond to the old single lobe model.

  • Physically correct volume emission scaling: The standard_volume shader has been improved to support scaling of volumetric emission in a more physically correct manner (via the emission_scaling option). The "opacity" emission scaling mode is based on density and transparency and scaled appropriately to the opacity of the resulting volume. This is physically accurate for blackbody if the scattering color is black. The "thermodynamic" emission scaling mode is the most physically correct as it also takes into account scattering color, since according to thermodynamics volumes with higher scattering albedo emit less blackbody radiation. For example, burning hydrogen produces steam but barely emits blackbody radiation while sooty smoke readily does. This mode is most useful when mixing different types of volumes with varying scattering properties. (ARNOLD-11701).

The images below show the effect of the scaling mode on blackbody emission. The difference between opacity and thermodynamic modes here is that in thermodynamic mode the white, highly scattering smoke does not emit, while the black smoke does (which is a slightly subtle effect but more physically correct).

  • Other volume emission improvements: The blackbody_intensity control can now be dialed above 1 for convenience. A blackbody_contrast parameter has also been added to (non-physically) reduce the brightness difference between parts of the volume at different temperatures, which can be useful for artistic purposes. (ARNOLD-11701). The images below show the effect of altering the new blackbody_contrast parameter. This reduces the disparity in brightness between parts of the volume at different temperatures, which tends to bring out the blackbody colors more vividly (though note that only value 1 is physically correct).
  • Pinned curves: A new wrap_mode parameter on curves can enable curve pinning. Pinned non-periodic curves go through the first and last point without having to introduce phantom points, thus reducing the amount of data stored on disk. (ARNOLD-12209)

The left curve's wrap_mode is set to nonperiodic, the right curve's is set to pinned.

  • Nested instancers: Nested instancers (instancer that contains instances of instancers) now properly perform instancing, fixing a severe overhead in node init/update time that made heavy use of nested instancers intractable. (ARNOLD-12410)
  • Cameras in ASS procedurals: Cameras stored in .ass file procedurals can now be used for rendering. (ARNOLD-12333)
  • Reduced missing texture overhead: The time spent handling missing textures has been reduced. Most likely this will be noticeable on file servers servicing a render farm. (ARNOLD-11915)
  • Light profile blocks: The AiLightsPrepare() profile result has been elaborated on, with LightSampling, light_filters, and LightInitSampler profile blocks being added. This will result in the self times reported for AiLightsPrepare() going down and these other profile blocks showing up with the corresponding times. This can help point out where render time is going during lighting. (ARNOLD-12439)
  • Python binding error message: When Arnold cannot be loaded by the python bindings, we now output the original exception error message instead of just the cryptic "Could not find libai". (ARNOLD-12366)
  • Cryptomatte 1.2.0: The version of Cryptomatte bundled with Arnold is upgraded to 1.2.0 (ARNOLD-12340).
  • Upgrade OpenImageIO 2.4.1: The OIIO used by Arnold has been upgraded to slightly newer than 2.4.1 (OIIO hash 7a662829b). (ARNOLD-12471)

USD Enhancements

  • Support dataWindowNDC: when the render settings primitive defines the attribute dataWindowNDC, it now renders accordingly in both Hydra and the USD reader, by framing the render to the expected normalized window. (usd#1161)
  • Cryptomatte in Hydra: When rendering final frames with Hydra, the cryptomatte metadatas are set in the output image. (usd#1164)
  • Render products with no productName: When AOVs are defined through a render product prim that doesn't have any product name, they now render to the same filename as the beauty image.  (usd#1170)
  • Instances optimizations in the procedural: When using instances, the usd procedural now relies on a usdStageCache to represent the instance prototypes, instead of re-loading the usd files on disk for each prototype. 
  • Pinned curves: Curves pinning is now supported in the Hydra render delegate and in the USD procedural.

Incompatible Changes

  • Improved AOV wildcards: When using AOV wildcard syntax and specifying a name for an output layer, the AOV type will be replaced by the given name. For example, using a wildcard of 'diffuse_*', a layer name of 'myLayer', and AOVs of 'red' & 'blue', the layers written into the EXR will be named 'myLayer_red' and 'myLayer_blue' instead of 'diffuse_red' and 'diffuse_blue' as before. (ARNOLD-12282).

Bug Fixes

  • C4DTOA-2766 - Incorrect Arnold Scatter object viewport display
  • C4DTOA-2771 - Flat color is too dark in material previews
  • C4DTOA-2775 - Unwanted breakpoints during debugging
  • C4DTOA-2777 - Incorrect color correct gain and offset when changing mode on the UI

  • ARNOLD-12282 - Crash writing light groups with preserve_layer_name
  • ARNOLD-12337 - Compression setting for dwaa/dwab is too low
  • ARNOLD-12346 - Clip_geo crashes when rendered in multiple render sessions
  • ARNOLD-12441 - Json stats should place the shader "percent by depth" category under "shader calls"
  • ARNOLD-12470 - Empty/invalid mesh on mesh_light causes crash
  • usd#1168 Remove attributes reset in the lights delegate
  • usd#1165 Support double array primvars in the procedural
  • usd#1175 Fix authoring per-channel connections so that the output attribute exists
  • usd#1131 Revert to SdrShaderNodes for discovery plugin
  • usd#1179 Support filter-type attributes in the reader
  • usd#1205 Support several render products for the same render var
  • usd#1183 Fix usdPreviewSurface attribute useSpecularWorkflow in the procedural
  • usd#1191 Ignore distant lights normalize attribute in the delegate to match the procedural


  • The introduction of the new C++ API requires third-parties to update and rebuild their C4DtoA extensions.
  • No labels
Privacy settings / Do not sell my personal information / Privacy/Cookies