Skip to content

GafferCycles 0.24.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@boberfly boberfly released this 30 Dec 08:59

Major Release

  • Cycles X (well, now the Cycles that comes with 3.1 as of December patches) see the release notes here: https://wiki.blender.org/wiki/Reference/Release_Notes/3.0/Cycles and https://wiki.blender.org/wiki/Reference/Release_Notes/3.1/Cycles
  • Updated the API calls to what 2.93 Cycles brought in, which was a major refactor
  • Added lightgroups and corner normals patches in this release which are both not applied to mainline Cycles yet
  • OpenCL was removed, but HIP for AMD hardware is now in-place and compiled in this release for RDNA/RDNA2 hardware
  • CUDA 11.5.1 and OptiX 7.4.0 were used in this build
  • OpenImageDenoise 1.4.2
  • NanoVDB (top-of-tree) with HIP support
  • OSL is now default but still not supported by GPU backends so you need to specify SVM manually
  • Proper point-clouds were introduced into Cycles and are supported

Improvements

  • Rewrote how images get saved out, uses OpenImageIO directly via the new output driver interface
  • Object lifetime is now managed mostly by Cycles itself as per the API changes, creation is still initially made by Gaffer so it stays multi-threaded without locks, but the final add is deferred to the Cycles scene lock as well as deletion which is managed by Cycles
  • Shader creation vastly improved with fixes to the hashing and custom AOVs should support shader substitutions
  • OSL shaders can be mixed and matched with Cycles shaders
  • Specifying device or multiple ones is vastly different, it is designed to specify via the right-click presets (please see tool-tip for details)

Breaking Changes

  • The Output shader node is now removed, it is now required to apply Surface/Volume/Displacement as separate ShaderAssignments and to use CyclesAttributes to apply the "shader" parameters to the scene path. This opens up upcoming better USDShade support as well as making it easy to remove displacement while retaining surface
  • Enums on shaders were integers before, but this is very problematic as they change over time so now they are StringData and converted to their integer number internally
  • Cycles removed branched-path mode, so no more sampling options for individual light paths or on lights. It is implied that adaptive sampling and AI denoising should be used now to reduce and manage noise

TODO

  • Support scrambling distance
  • Unit tests
  • Documentation