Welcome to RenderMan 22.3!

Welcome to RenderMan 22.3. This release introduces improvements to the previous RenderMan.

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

Note that there are API changes in RenderMan 22.3 that require you recompile your plugins. You can view and download the Doxygen files here.

What's New



Miscellaneous Changes

  • Added more mitigation against corruption in denoised images when there are NaNs in the albedo variance channel

  • Add basic scene graph translation stats to "Expert View > Plugins"
  • Add primvar buffer (scene translation) stats to "Expert View > Memory"
  • Improved threading behavior of light selection setup
  • Remove unused master attribute "trace:samplemotion", we suspect you want true raytraced motion blur everywhere by now
  • The texture3d() OSL function has been implemented.  It can read 3D texture data from point cloud files, organized point cloud files, and brick map files. The return type can be float or color.  (The OSL function resembles the old RenderMan RSL texture3d() function.)
  • Improved performance of light selection setup in scenes with many thousands of lights and light linking
  • On Windows (only) the default number of textures that can be opened is changed, which can result in dramatic speed ups for scenes with thousands of textures. The rendermn.ini setting /prman/textures/maxfiles is no longer ignored on Windows. On Windows the default is now 2048 (was 512) which is the same as the maximum allowed on Windows
  • Significant memory reduction of curves geometry, the improvement is more pronounced for cubic b-spline and catmull-rom basis. This may cause a very small look difference if examining close individual strands
  • Reduced OSL compile times
  • Images rendered with more than 4K samples per pixel will have less noise than before
  • The time to first pixel for dense subdivision meshes with watertight dicing has been improved
  • Max resident memory reporting on Linux has been improved, often showing a higher memory footprint
  • Peak memory consumption for dense subdivision surfaces partitioned into many facesets has been greatly reduced
  • Checkpoints are now written to .part files during checkpointing and only replace the prior checkpoint once all of them have been successfully written
  • Memory statistics tracking for scenes with huge numbers of instanced objects has been significantly improved
  • OSL shading system optimization levels have been adjusted for better performance out-of-the-box
  • Added new "objectdistance" dicing strategy that is guaranteed to be stable across all geometry instances. This dicing strategy dices to a object space distance length set by dice:worlddistancelength
  • A new attribute, "displacement" "ignorereferenceinstance" has been added. It takes the value 0|1 and is off by default. If set to 1, displacement shading will ignore the  referenceinstance; this may be useful for eliminating any instance-related variability in displacement shading 
  • Extended RixSCAccess to allow labeling BXDF inputs with the execution modes where they will be needed to enable future renderer-side optimizations

  • The OSL source for the blue marble preset is now included in the preset assets

  • Improved memory statistics for lighting

  • "checkpointElapsed" is now a float attribute that can be added to EXR files


  • Fixed a bug where editing a geometry master instanced inside a group would yield a crash

  • The normal N on brickmap gprims has been fixed
  • Addressed a bug with checkpointing that could corrupt tiled openexr file output
  • Fix incorrect transformations for geometric lights
  • Bug fix in "it" that would lead to a crash if you opened a image file from disk while the A.I. denoiser was enabled
  • Fixed bug in PxrRemap pattern where uninitialized values are returned when the value of inputMin and inputMax are equal
  • A problem with facevarying interpolation near semi-sharp geometric creases on subdivision meshes which could lead to swimming textures has been fixed
  • Fixed a bug that could lead to incorrect transformations when using named coordinate systems during cached presence and opacity calculations
  • The peak memory consumed by the ray accelerator is now correctly counted
  • A small memory leak incurred by the ObjectInstance RI call has been fixed. Besides plugging this leak, the memory consumption per instance has also been reduced slightly
  • Fixed a bug that could cause checkpoint recovery to fail when the "origin" Display parameter is used
  • Fixed an issue where a Specular Glint setting of 0 caused a crash in PxrMarschnerHair 
  • A stack overflow when rendering volumes on OSX has been addressed

  • Improved memory statistics for lighting

  • Fixed calls to RixTransform/RiTransformPoints when called from Ri procedurals

API Changes

  • RixLightFactory::Create() and RixLight::Edit() have a new parameter: "RtUString const name".  The name of the light is the attribute "identifier:name" of the instance of the light.  This is used to properly track lights in lpes and aovs.

  • There is a new output parameter for RixLight's GenerateSamples(), EvaluateSamples() and GenerateEmission(), the light's normal.

Interactive/Live Rendering Limitations

RenderMan Pro Server Limitations