Welcome to RenderMan 22.4. 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!
RixRNG Generator class API change requires a recompile of Bxdfs and Integrators for 22.4
Additions to "it", the Image Tool
The "Diff..." command in 'It' can now produce absolute valued difference images
Improved optimizations for large OSL networks that share computations across scatter, opacity, and volume evaluation for bxdf's that correctly categorize their inputs using extended RixSCAccess modes
Updated PxrSurface to take advantage of extended RixSCAccess modes
Checkpoint recovery is now more verbose by default. Set /prman/recover/verbosity to 1 in rendermn.ini to return the old level. The new default is 3
Added built-in "__faceindex" AOV
Improved shadow results from PxrShadowDisplayFilter
The PxrDirt pattern and the PxrOcclusion and PxrDirectLighting integrators now ignore volumes entirely
Displacement bound is applied more strictly producing more obvious and easier-to-debug clipping artifacts when misconfigured
Fixed possible crash related to long transformation paths
Fixed the NP and Nl values provided to display plugins when using a worldorigin other than "world"
Fixed a bug causing artifacts in LPE AOV outputs when rendering with more than one indirect sample in PxrPathTracer, in the presence of volumes mixed with glass or subsurface
The built-in variable dPdtime is now correctly computed for transform blurred volumes which do not have velocity wired into their shading network
Fixed an issue where many threads calling RiObjectBegin at the same time could lead to non-unique object handles being generated
Fixed a bug that could lead to failure of portions of a shading network when using mixed C++ and OSL patterns
Fixed a bug where deep images may have the negative values in the last channel in the channel list turned positive
PxrUnified's adaptive progressive photon mapping feature, broken in previous 22 releases, now works again
Fixed an issue where linear curves with motion blur could appear clipped or disappear completely if option curve:minwidth had a value greater than zero
Equiangular sampling in PxrVolume is now correctly disabled when using an integrator that does not support volumetric single scattering (like PxrVCM or PxrUnified)
Improved interpolation of normals in deforming polygons and pretessellated subdivision surfaces. Dark or inconsistent illumination could be seen on object edges when the deformation had a rotation component
When PxrBump()'s surfaceNormalMix parameter is greater than 0.0, the resulting bump normal was not normalized. Now it is -- just like in all the other cases
Subsurface objects which overlap volume envelopes now no longer render with artifacts (e.g. dark lines) that follow the edge of the envelope
The six RixRNG single-point sample generation functions DrawSample*D() and GenerateSample*D() now have an extra parameter 'i' which is the shading point index. (Same as in RenderMan 21, but with the index as last parameter rather than first.) Most Bxdfs and Integrators use the multi-point versions of these functions, so no change is needed there; nonetheless, this change requires a recompile
Fields that are not valid in the RayCtxInfo struct have been removed. The RixRenderState::GetRayCtxInfo() method should be considered deprecated and will be removed in a future release
The RixIntegratorContext::GetNearestHits() methods have been extended to allow volumes to be ignored. New versions of these methods have been added which simplify the optional parameters; the old versions should be considered deprecated
Add RixIntegratorContext::k_MaxRaysPerBatch to API. This defines the maximum limit of numRays that can be passed to GetNearestHits and GetTransmission
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
The Centos KDE style "Oxygen" installs a version of Qt and sets the user's environment variable QT_PLUGIN_PATH forcing "it" and LocalQueue to attempt to load an incompatible Qt library. Either avoid installing the Oxygen theme or unset QT_PLUGIN_PATH before running "it" or LocalQueue. Other KDE styles may also install this theme.