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

Page tree


Welcome to RenderMan 21.7!

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

  • Compatible with the Katana 3.0 Beta Release
  • Cryptomatte support is added. Find example workflows in the Maya and Katana documentation. Volumes are not yet supported and will be opaque.

Cryptomatte output in Nuke

  • 'it' now has expanded exposure controls allowing better viewing of HDR images.
  • Mesh lights now support the same shadow controls and shadow linking as the analytic lights.
  • Improvements to light selection on scenes with many lights should improve render times.
  • Performance improvements to volume rendering, especially very sparse volume fields and/or single scatter volumes.
  • OpenEXR texture reads (.tex as EXR) are faster.
  • Added more controls to texture patterns:
    • This includes:
      • PxrTexture
      • PxrProjectionLayer
      • PxrLayeredTexture
      • PxrMultiTexture
      • PxrNormalMap
      • PxrBump
    • Added 3 new parameters to texture patterns:
      • int mipBias: bias mip selection, negative numbers bias lower resolution while positive numbers bias to higher resolution textures.
      • float maxResolution: clamp mip selection, useful to prevent loading of higher resolution mipmap levels.
      • optimizeIndirect: sets to an inexpensive Box filter on indirect hits, except on PxrBump where the filter is fixed.
    • The user attributes, "int texturemipbias" and "float maxtextureresolution", will override these settings. 
  • Improvements to Display Filters allow for easier construction of non-physical effects.

Miscellaneous Changes

  • GPU Denoise requires CUDA 7.5 and compatible hardware.

  • For refraction, extinction and ssAlbedo are unconnectable on PxrSurface

  • Added support for baking with displacement
  • Improved precision of PxrRamp inputs
  • PxrPortalLight: now supersamples the input texture, leading to less potential pixelization on low resolution textures
  • PxrSphereLight's intensityNearDist is now more correct/precise.
  • Path Traced Subsurface options in PxrSurface now converge more quickly for high phase values
  • Lighting Services: 
    • Minor changes to horizon culling of lights and clusters to the light selection algorithm
    • Additional code robustness for lights: Fixed crash in cases where mesh lights were instanced
  • PxrPortalLights, added more protection against slightly negative dot products in the portal sample function.
  • PxrMarschner lobe picking improvements, this reduces the variance, especially for high albedo hair
  • Memory optimizations in KD tree representation of volumes

  • Optimizations for volumes in the case of low density volumes
  • Updates to remove subsurfaceZeroScatterAttenuation to make sure that PxrLayerSurface reflects the new approach in PxrSurface
  • Prevent PxrOcclusion from calculating occlusion for infinite lights.
  • Add new RixShadingContext::GetNearestHits method with excludeSubset parameter.
  • Reduced memory usage when baking complex scenes with PxrBakePointCloud.

  • PxrDisney "ClearCoat" lobe has been renamed "Clearcoat" for output to standard LPEs used by other shipped materials.
  • Thread contention has been reduced when emitting many RiObjectInstances from multiple threads.

  • Added new API calls that Display and Sample filters can use to perform image processing (e.g., for NPR) across bucket boundaries.

Bug Fixes

  • Fixed a possible race condition when plugins in multiple threads access the same subdivision mesh via the RixSubdivisionSurfaceEvaluatio n interface.

  • Fixed a light selection bug when a scene was made up of all infinite lights

  • Fixed a possible crash when using Denoise on Windows.

  • A crash caused by rendering alembic files with large number of points has been addressed.

  • Fixed issue that 0% progress was reported after hours of rendering.
  • Fixed a crash with PxrVCM and volumes
  • Fixed bug causing occasional incorrect normals on displaced Loop subdivision surfaces.
  • Avoid crashing if using the Bake Hider on an empty scene.
  • A crash observed when enabling watertight dicing on degenerate subdivision faces has been fixed.
  • Fixed a problem where PxrVolume applied to NURBs geometry sometimes created incorrect shadows.

  • Fix problems when rendering the VLen, PWorld, and other geometric AOVs when using volumetric glass shaders.

  • Fix an interaction between PxrPathTracer with Russian roulette enabled at depth 1 and PxrVolume with single scattering leading to incorrect alpha values.

  • Handling of volumes with camera visibility 0 has been made significantly more robust when dealing with complex situations including overlapping volumes and scattering from surfaces inside the volume.

  • A bug causing multiscattered volumes to evaluate non-varyingprimvar lookups for emission has been fixed.

  • When the extrememotiondof hider option is enabled, frame number is now incorporated into DOF sampling, preventing "shower door" (constant sliding noise across the frame) artifacts on out-of-focus objects.

  • Fixed an issue where autocrop would not work correctly in openexr displays

  • Fixed bug causing potential for nan results from edge-on sampling of disk or rect lights when using emissionFocus.

  • A bug that caused issues with clearcoat layering with PxrLayerSurface has been addressed.

  • A bug that prevented dispScaleSpace from applying on the PxrDispTransform node has been fixed.

  • Fixed an issue where the adaptive sampler would finish an image before exitat checkpoint was reached.


Known Limitations

RenderMan Pro Server

  • Rendering an alembic file with any instances will only render the original geometry. The procedural does not call ObjectBegin/ObjectEnd or ObjectInstance so all instances are ignored.
  • Full LPE support is only available with the PxrPathTracer and PxrVCM integrators.
  • Cryptomatte
    • Crop renders write the whole image with black padding. These will still be correctly aligned with the main render.
    • Single-scatter volumes show as an opaque volume envelope. Multi-scatter volumes work correctly.
    • Checkpointing is not currently supported.
  • Light Filters in the PxrVCM integrator do not affect or shape photon emission.
  • The Cone Angle parameter for lights is incorrect, it does not match the input angle, this will be fixed in a future version.
  • The PxrAovLight does not work properly with PxrUPBP.
  • Analytical lights placed inside volumes may yield artifacts when made visible to the camera. As a workaround, the light camera visibility should be turned off, and a geometry with a similar shape should be used (visible to the 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.
  • Instances are not supported for baking.
  • 3d baking: no direct bake-to-ptex support.
  • PxrBakePointCloud cannot directly render ptex.
  • No RixPTC/pointcloud API (so PxrBakePointCloud cannot read ptc files).
  • 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.
  • Camera visibility changes are not respected during Live Rendering.
  • For PxrUPBP, If the light source is inside a volume, that volume needs to be defined as Volume “box”, RiVolume
  • For PxrUPBP, To get a volume caustic, the object casting the caustic needs to have higher intersectpriority than the volume.
  • For PxrUPBP, Overlapping heterogeneous volumes are not working yet. (However, overlapping homogeneous volumes do work.) This will be resolved in the future.
  • 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 have mesh lights attached to them.
  • 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.