Page tree


Welcome to RenderMan 23.1!

Welcome to RenderMan 23.1. This release introduces improvements to the previous RenderMan in very significant ways.

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

New Features in 23.1

  • PxrSurface has a new parameter "float glassRefractionRoughness". If specified, this roughness is used for glass refraction while the regular "glassRoughness" is used for reflections. If not specified, the regular "glassRoughness" is used for both reflection and refraction, this is not layerable in this version


  • Fixed a bug when installation paths with '#' in them would cause "it" to not start and print an error message

  • Fixed a bug which caused temporary memory allocations during scene construction to persist for the lifetime of the render. The effect of this bug on memory footprint scaled with the number of primitives in the scene
  • Fixed incorrect variance AOV when filter was specified
  • Fixed incorrect adaptive sampling when relativepixelvariance was not specified

  • Fix RixProjectionEnvironment::worldToCameraMatrix when using option trace:worldorigin of camera. This fixes PxrCamera's tilt shift feature

  • Fixed artifacts with baking PxrDirt
  • A bug where RixShadingPlugin::SynchronizeInstanceData() would not be called for displacement shading networks has been fixed

  • A bug which affected semi-sharp subdivision mesh creases with a non-integer value has been fixed


Miscellaneous Changes

  • The alembic procedural now supports:
    • shape pruning
    • conversion of poly meshes to subdiv and vice versa
    • attributes insertion/overrides via RLF
    • unsigned int primvars
  • The alembic procedural now correctly export all instanced objects.
  • PxrFlake: Fixed moire artifacts and lowered the cost of multiple flake layers (octaves). The pattern has changed but has the same characteristics as the previous version, some small visual differences are present
  • PxrUnified now supports Attribute "trace" "diffusedepth" and "speculardepth". Unlike PxrPathTracer, this behavior is opt-in only and must be enabled by setting the new integrator parameter "useTraceDepth" to 1
  • Reduced transform memory in scene graph representation

Known Limitations

Interactive/Live Rendering Limitations

  • Bucket order or size cannot be changed during live rendering
  • Changes to Presence do not update when using the opacity cache option
  • Motion Blur will disappear during interactive rendering with scene changes
  • Objects are not re-diced during interactive camera edits
  • Mesh lights cannot be interchanged as geometry without restart.

RenderMan Pro Server

  • PxrUnified integrator is currently experimental as it does not yet support all the standard rendering features.
  • Meshlights cannot be instanced
  • Load on demand procedurals are not supported anymore, all procedurals are now loaded immediately
  • We do not read point data from OpenVDB files
  • PxrSurface back diffuse color is not output to the albedo color AOV
  • Analytical lights placed inside volumes may yield artifacts when made visible to the camera. As a work around, the light camera visibility should be turned off, and a geometry with a similar shape should be used (visible to camera, invisible to transmission and indirect rays), with the proper emissive bxdf.
  • Using the ' . ' character in the handle for an OSL shader could cause unpredictable results during re-rendering.
  • Per-Instance baking is not supported, only the reference instance.
  • 3d baking: no direct bake-to-ptex support.
  • PxrBakePointCloud cannot directly render ptex.
  • Sample/Display filter plug-ins do not have access to lighting services for light dependent effects, e.g. lens flare.
  • Adding new mesh light on existing geometry during IPR results in double geometry.
  • Motion blurred polygons do not motion blur normals when deformed. Use Subdivision meshes instead.
  • When attempting to access an array primvar, you must first check the size of the array primvar and allocate the appropriate space. Not doing so may lead to a crash.
  • Points and curves cannot be used as geometric lights.
  • Deformation motion blurred volumes don't currently work with densityFloatPrimVar or densityColorPrimVar. You will need to use a PxrPrimVar node connected to densityFloat and densityColor instead.