This is RenderMan 21 Documentation you are viewing. The Rmanwiki home page will redirect you to the current documentation.

Page tree

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »


Welcome to RenderMan 21.4!

This release introduces the following improvements, fixes, and miscellaneous changes.

Error rendering macro 'html5-video'


  • A new pattern for the easy creation of realistic hair has been added, PxrHairColor
  • A new pattern for the control and creation of multiple texture assignments has been added, PxrMultiTexture
  • PxrIntMultLightFilter has new parameter Saturation.
  • RenderMan now supports integer display channels. Use DisplayChannel "int foo" or similar to create them. These channels require either zmin or zmax filtering and will default to 1x1 zmin. Integer builtin AOVs (such as "id") assigned to an integer channel will now be passed through as raw bits instead of converted to floating point values.

  • Lights have added parameters to control map texture saturation and gamma.
  • A new display filter, PxrHalfBufferErrorFilter, can estimate the Monte Carlo error from a pair of half buffers.

  • PxrVCM now supports an additional parameter: 'specularCurveFilter' (float, default value: 1.0f). This allows the user to de-activate specular roughness filtering. Specular roughness filtering usually yields renders with less noise, but this may result in inaccurate caustics. Set this value to 0.0f when you want to render ground-truth caustics.
  • Multi-plane Stereo Rendering: It is desirable to have more or less stereo effect on the foreground objects versus the background. Previously this was done in separate render passes which were then composited together, but this is cumbersome and does not work if there is an object or volume that straddles the split between foreground and background. The planes and horizontal offsets are defined for the camera. Even though these parameters are defined for a specific camera, they are actually global (i.e. for all cameras) -- just like e.g. "shutteropening" is. Currently limited to a maximum of 5 planes. Syntax examples:

    //Single plane, offset only for the right eye (world camera is last):
    Camera "right"
    "float[1] stereoplanedepths" [7]
    "float[2] stereoplaneoffsets" [0.2 0]
    //Three planes, offsets for both left and right eyes:
    Camera "right"
    "float[3] stereoplanedepths" [5 12 27]
    "float[6] stereoplaneoffsets" [-0.2 0.2 -0.4 0.4 -0.8 0.8]

Miscellaneous Changes

  • The RixDisplayChannel::ChannelType::k_IdChannel enum has been renamed to k_IntegerChannel.  The old name remains available as an alias but will be removed in the next major release.
  • The "float rawId" builtin AOV is now deprecated. Use the equivalent "int id" AOV instead.

  • Made optimizations to the core raytracing speed.
  • deepEXR's storage changed from "tiled" to "scanline". Note that this may dramatically increase memory requirements to cache the frames as they are being rendered. We recommend Horizontal or Zigzag-X bucket order when rendering to help ameliorate the cost.
  •  An incremental render that successfully uses recover mode to pick up from a previous render now does at least 'minextrasamples' new samples (Hider "raytrace" "int minextrasamples").

  • Attribute "identifier" "id" of -1 (old behavior was < 0) signals the master ID wins, not the instance (i.e. no instance override desired).

Bug Fixes

  • Fixed PxrSurface's subsurface albedo where there were artifacts when the subsurface gain was connecting to a pattern that has zero value.

  • PxrSurface's energy compensation now works for the physical specular mode as well as the artistic mode.
  • Fixed a rare multi-threaded crash encountered when using many LPE's.

  • Fixed bug causing potential for NaNs when using PxrMeshLight.

  • Fixed an issue where there might be artifacts caused by light selection.
  • Fixed bug in attempts to access primvars that don't exist via OSL's getattribute() call.

  • Fixed a bug where the motionFore and motionBack AOV's for cross-frame denoising could have incorrect values on instanced geometry.

  • Resolved an issue where refraction rays would be traced using the subsurface scattering interior integrator, resulting in missing refraction and/or bucketing artifacts in the case where there is subsurface scattering without volumes.

  • Fixed a bug in PxrTee that was preventing it from working correctly with float inputs when using RfM.

  • Correct P values now returned for single scatter volumes.
  • Fixed potential crash when a Subdivision Surface shading network has multiple PxrBakeTexture outputs.

Known Limitations

RenderMan Pro Server