C4DtoA 3.1.0 is a major feature release, that uses Arnold

This release introduces a new Arnold Scatter object, viewport proxy settings for procedurals and includes several changes in the Tx texture workflow.


Autodesk Network Licensing in Arnold 6 requires new license files with an updated 2020 version. Please follow the instructions on this page to generate your license file. More info about Arnold 6 licensing can be found here. 

Compatible Cinema 4D Versions

  • Cinema 4D R20.057 and above
  • Cinema 4D R21.026 and above
  • Cinema 4D S22.016 and above

System Requirements

  • OSX 10.11 or later
  • Windows 7 or later, with the Visual Studio 2015 redistributable
  • Linux with at least glibc 2.12 and libstdc++ 3.4.13 (gcc 4.4.7). This is equivalent to RHEL/CentOS 6
  • CPUs need to support the SSE4.1 instruction set
  • Optix™ denoiser requires an NVidia GPU with CUDA™ Compute Capability 5.0 and above
  • Arnold GPU works on Linux and Windows and requires an NVIDIA GPU of the Turing, Volta, Pascal, or Maxwell architecture. We recommend using the 450.57 or higher drivers on Linux and 451.77 or higher on Windows. See Getting Started with Arnold GPU for more information.


  • Arnold in the main menu bar: Arnold is now moved to the main application menu bar instead of the default Plugins/Extensions menu. A new option is added to the Preferences to control the location of the Arnold menu (main menu bar vs Plugins/Extensions menu). (c4dtoa#1553)
  • Arnold Scatter object: A new Arnold Scatter object is available in the plugin menu to distribute instances over a selected surface. (c4dtoa#1618)
  • Viewport proxy in Arnold Procedural: Procedurals have a new option to use a proxy geometry in the viewport to achieve a better frame rate and save memory. The proxy mesh is generated with the native Optimize command which expects a tolerance distance input. (c4dtoa#828)
  • Tx generation mode in Preferences and Render Settings: Auto-convert textures to tx and Use existing tx files options are merged into a Tx Generation mode option. Possible values are auto (default), manual, or none. The default mode is specified in the Preferences which can be overruled in the Render Settings of specific scenes if needed. (c4dtoa#1614)
  • Convert textures to Tx in the background in the IPR: When Tx Generation mode is set to auto, the IPR now generates Tx files in the background and does not block the UI. The render does not start until the Tx files are generated, yet users can work freely in the scene during this time. (c4dtoa#1584 c4dtoa#1625)
  • Tx update status in Tx Manager: The Tx manager now shows if a Tx texture needs to be updated, e.g. the original image is modified, color space settings or other maketx options have been changed, etc. This works only if the default (auto tx) maketx options are enabled. (c4dtoa#1617)
  • Specify color space when generating Tx files from a folder: Textures from a folder are now listed in the Tx Manager allowing users to specify color space per texture and convert only selected files. (c4dtoa#1665)
  • Switch between Tx and original texture in Tx Manager: New options added to the Path... button on the toolbar to replace selected textures with Tx or restore the original path in case the file exists. (c4dtoa#1670)
  • Update IPR when the viewport is not visible: Now the IPR updates properly even if the viewport is closed or behind another tab. The only limitation is that there are no updates while changing a slider, only when the slider is released. (c4dtoa#1636)
  • Export absolute paths: A new option is added to the Scene Export dialog to always export assets with absolute paths if enabled, even if paths are defined relative in the scene. (c4dtoa#1640)
  • Unified displacement, normal_map, and vector_map shader UI: These shaders now have the same layout. (c4dtoa#1678)
  • Logging improvements: A header is printed now to the console to separate logs of each render calls. (c4dtoa#1677)

Arnold Enhancements

  • Automatic file path remapping: String parameter values can now be automatically modified according to the OS Arnold is running on. For example, this is useful when the artist workstations are running Windows but the renderfarm nodes are running Linux. Configuration is done with a JSON file that contains the strings to search and replace for each OS. This configuration file can be selected through the ARNOLD_PATHMAP environment variable.  (#9311)  For example:

           "this_path/": "some/other_path/windows/"
          "this_path/": "some/other_path/mac/"
          "this_path/": "some/other_path/linux/"
  • Rim light control for the Toon shader: A new rim_light_tint float parameter was added to the toon shader to tint the color of the rim light using the base color of the surface. See the full documentation. (#9003)

  • Performance improvements on Windows with many cores and texture-heavy scenes: Several performance improvements have been made, particularly for those running Windows, using many cores, tiff based textures, and/or reading many textures/sec. Expected speedups can be anywhere from a few percent to orders of magnitude faster on many-core Windows machines. (#9515, #9685, #9686, #9695, #9709, #9761) For a medium complexity scene that uses exr based .tx textures we get the following speedups on Windows :

    AMD 3970X (64 threads)439s397s1.11x
    AMD 3990X (128 threads)379s267s1.42x
    AMD 3995WX (128 threads)351s276s1.27x
    Intel Xeon 8280 x 2 (112 threads)356s337s1.06x
    Intel i9-9980XE (36 threads)748s720s1.04x

    For a texture heavy stress scene (8GB of tiff based .tx texture tiles end up being read in) we get the following speedups on Windows:

    AMD 3970X (64 threads)2002s9.9s202x
    AMD 3990X (128 threads)2103s10.1s208x
    AMD 3995WX (128 threads)2130s9.0s237x
    Intel Xeon 8280 x 2 (112 threads)1585s11.2s142x
    Intel i9-9980XE (36 threads)1145s16.8s  68x
  • String parameter path metadata: A new path metadata can be assigned to string parameters to give specific hints about how they will be handled. Currently available values are: filefolder and folderlist. Arnold will expand environment variables, apply the remapping, and handle backslashes on string parameters with the metadata. (#4969)
  • AA_adaptive_threshold in log: The options.AA_adaptive_threshold used is now output in the log file. (#9841)
  • Upgraded OSL: Arnold now uses OSL 1.11.6 bringing multiple optimizations and bug fixes, see the full list of changes. (#8917)

GPU Enhancements 

  • Global AOV shaders: The aov_shader option is now supported on GPU. This option defines a list of shaders that the renderer will evaluate after the regular surface shader. With this, it's possible to add shaders to set specific AOVs without modifying the original shader tree. See the option documentation. (#9394)
  • Initial support for attributes in OSL:  You can now retrieve user data bound to shapes via the getattribute function or via a lockgeom parameter attribute. This initial implementation still has some limitations when compared to the CPU implementation. Queryable attributes are currently restricted to those bound to the current shaded shape and attributes of the active render camera. Querying node parameters is also not yet supported. (#9666)
  • Initial support for tracing in OSL:  You can now use the trace function to trace rays in OSL shaders along with the getmessage function to retrieve information regarding any intersected object. This initial implementation has the restriction that you cannot yet query parameters on an intersected object. (#9797)

Bug Fixes

  • c4dtoa#1668 Crash in IPR when rendering particle instances and the emitter object is disabled
  • c4dtoa#1660 Procedural loaded in Maya has the wrong scale
  • c4dtoa#1642 Wrong color space when Tx generation is set to manual
  • c4dtoa#1655 Layer shaders displayed black in the viewport
  • c4dtoa#1682 Material preview render blocks the UI

  • c4dtoa#1685 Arnold OSL header files are not installed

  • c4dtoa#1683 Arnold lights still visible in "Geometry Only" mode in S22

  • c4dtoa#1664 Problem with custom texture tag projection and normal map

  • #9828 AiMetaDataGet/Set functions crash with a NULL node entry
  • #9746 [Alembic] sampled faceset data causes crash
  • #9816 [Alembic] Velocities data on curves not applied correctly
  • #9515 Allow IPR to properly scale past 64 cores on Windows
  • #9809 Allow maketx to use either single dash or double dashes for arguments
  • #9684 Arnold ignores non-linear output color spaces on images wider than 8 bit
  • #9020 Back slashes in strings get changed to forward slashes when queried or written to .ass
  • #9672 Better duplicate output detection
  • #9749 BVH with 3+ motion keys is missing AiProfileBlock
  • #9575 Crash when calling AiMsg while the Arnold session is ending
  • #9725 [GPU] Arnold prematurely runs out of memory with on demand textures
  • #9748 [GPU] Crash in GPU prepare when failing to compile programs
  • #9794 [GPU] fov not set when using custom perspective camera
  • #9852 [GPU] GPU crash with multiple shaders connected to the UV camera post_bake
  • #9580 [GPU] Incorrect "Insufficient device memory" error when using NVLink
  • #9692 [GPU] Incorrect result when calling user data shaders from uv_camera.post_bake
  • #9771 [GPU] OptiX denoiser incorrectly accumulates feature buffers in progressive mode with multiple filters
  • #9774 [GPU] OSL: Don't throw exceptions when getattribute is called
  • #9636 [GPU] OSL texture crash when toggling devices
  • #9202 [GPU] Precision issue in bump mapping
  • #9532 [GPU] Random crash during the GPU prepare stage
  • #9801 [GPU] "Unable to load Optix library" error on Tesla and TCC GPUs on Windows
  • #8956 kick logs show superfluous plugin loading messages before official log start
  • #9758 Make smart opaque robust to numerical precision error
  • #7934 mesh_light with degenerate triangles has poor performance
  • #9522 [OSL] Arnold can fail to find stdosl.h when the path to Arnold contains specific characters on Windows
  • #9840 [OSL] Crash when SIP is enabled on MacOS 10.14 when using OSL
  • #9607 Parsing errors in ass file parameters should abort scene loading
  • #9659 Potential memory leak when using _triggers_reinitialize metadata
  • #9753 Prevent texture cache from being smaller than 2GB
  • #9863 Print license error details at warning level
  • #9845 Python binding for AiParamGetType returns c_int instead of c_uint8
  • #9762 Slow build with many ginstances of many-prim objects
  • #9595 Slow node update of VDB volumes on Windows and Linux even when volume did not change
  • #9610 Spurious render message when using -default_nodes in kick
  • #9644 Using AOV write shaders increases texture usage
  • #9638 Wrong exterior illumination with portal lights in interior_exterior mode
  • usd#463 Texture coordinates of texcoord2f type are not read correctly

  • No labels
Privacy settings / Do not sell my personal information / Privacy/Cookies