Page tree


Welcome to RenderMan 23.6!

This release introduces improvements to RenderMan. 

Please dive right into the release notes below for more detailed information on the latest version of your favorite renderer!

New Features in 23.6

  • There are two new optional controls for path-traced subsurface scattering - Attribute "trace" "int sssautobias" and "trace" "float sssbias". In the rare cases where the automatically computed bias for path-traced subsurface scattering needs tweaking, one can set "sssautobias" to 0 and "sssbias" to a desired value such as 1e-6. The default values are 1 for "sssautobias" and 1e-4 for "sssbias".

  • PxrTee can now export AOV's from the shading networks for Volumes.

  • The PxrPrimvar built-in names "curvature_u" and "curvature_v" for principal curvatures can now also be written "curvatureU" and "curvatureV". This is for forward compatibility with the OSL version of PxrPrimvar in RenderMan 24.

  • We have deprecated the behavior where connecting a utility pattern to a PxrSurface node forces uncached opacity computations. This has been seen to be a major performance detriment, but can be re-enabled with Option "user" "int utilityPatternForcesOpacity" [1].

  • Added support for OpenEXR Arbitrary Metadata.
  • PxrAttribute has a new resultI output to allow users to chain PxrAttribute nodes.


  • Rendering with adaptive sampling after a breakpoint and resume took up to 20x longer than when uninterrupted; this was due to missing data in the checkpointing output file and has been fixed.

  • Fixed a bug in OSL trace() that could happen when hitting multiple objects within a batch of rays.

  • Fixed a bug that could return garbage derivatives on failed texture lookups from OSL.

  • Fixed a bug that could result in bad texture derivatives at UDIM boundaries.
  • Fixed offscreen decimation of dicing rate incorrect behavior with a custom ScreenWindow.

  • Fixed out-of-bounds vector access when a OSL spline is provided with only a single control point.

  • Fixed incorrect default for the number of textures in PxrTileManifold and PxrRandomTextureManifold.
  • Fixed rare holes in alpha channel due to missing ray hits on subdivision surfaces with intricate detail. (The holes were visible when looking at the alpha channel with gamma=0)

  • Fixed a bug where derivatives were uninitialized when fetching uniform attributes and options with OSL getattribute().

  • PxrSwitch artifact when connecting a pattern to the index parameter.
  • Fixed cases where texture3d() could lead to uninitialized values in derivatives.

  • Fixed a bug where AreaScale of mesh lights was not properly updated during interactive updates.

  • Added fix for shadow bump terminator index error in PxrDiffuse and PxrDisney.
  • Optimized a pathological case for nested instancing on scene ingestion that can dramatically reduce render startup in certain cases.

  • Fixed a bug that could cause intermittent crashes in non-deforming curves.

Miscellaneous Changes

  • Added improvements to light selection learning.

  • Improved the behavior of denoised Marschner by changing how the albedo is calculated.

  • Improved the degree of noise in scenes with spotlights or ies profiles.
  • LocalQueue log improvements.