Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

...

UI Enhancements — Bridge products enjoy streamlined workflows to enhance our interactive rendering capabilities. Improved exposure of RenderMan Attributes and Options help users make decisions and see results at all stages of production.

Rewritten RenderMan for MayaBridge Products — RenderMan for Maya has and Katana have been redesigned. Better integration means less looking for options, fewer clicks, and faster images. Render directly to Viewport 2.0 in Maya and see your changes as they happen. Time to first pixel is greatly reduced and your work is uninterrupted.

...

Opacity from Presence — We now support partial presence values (values between 0 and 1) for true opacity. This changes to how we calculate presence on camera rays and results in noise-free partially opaque effects up to a user-specified depth in the integrator.

OpenVDB Updated — PxrVolume provides more sampling options to enhance performance as well as new support for OpenVDB 4.0.

Improved Sampling Stratification – This improves noise reduction, time to converge, and preview renders. Please see the paper on Progressive Multi-Jittered Sample Sequences.

New Adaptive Sampler Option – In addition to the new stratification, we include a new experimental adaptive sampling technique as an option. You may find better convergence at higher Variance thresholds.


Important Differences

  • To achieve interactive rendering including geometry edits, RenderMan 22 has a high performance interface for bridge products. However, the Ri interface is still supported, including Ri Procedurals. In particular, Ri editing features are not supported anymore.
  • RtToken has been replaced, any string that is passed to the renderer must be a RtUString. Any customer code will need to implement this change.
  • Look differences will happen between older layered PxrSurface materials and RenderMan 22, especially subsurface scattering. This is due to the improved layering logic.
  • Lights are no longer visible by default in refraction, you must use "int visibleInRefractionPath" [1]
  • The default coordinate system known as "current" has changed. "Current" space is context dependent and subject to change
    • Displacement is changeable from Object Space (current space) or World Space in shaders, it will not be possible to exactly match previous displacement results.
    • Bxdf is in World Space
    • Analytic Lights are in Object Space
    • Light Filters are in World Space
    • Integrators are in World Space
    • Sample Filters are in World Space
  • All geometry is converted to instance geometry, i.e. everything is now an instance within the core of the renderer
  • Attribute identifiers are now 64-bit integer instead of float
  • Note that the light cone angle parameter on lights has been corrected to use the correct measurement in degrees from the edges. This will alter the look of older scenes. To match older scenes there's a bit of math involved: newTheta = 90 - atan(2.tan(90 - oldTheta)) (Note that this is radians)
  • We do not include the Librix library
  • RtToken has been replaced, any string that is passed to the renderer must be a RtUString
  • librix standalone library, RixInterfaces is only available through libprman.
  • Always Curves without normals as a notation for desiring always camera-facing curves is are not supported anymore. Curves without explicit normals are now rendered as cylinders.
  • Dtex format is deprecated, use Deep EXR instead and will be removed in the near future.
  • Some previous materials have been deprecated or removed
    • LM Materials
    • PxrGlass
    • PxrSkin
  • The PxrUPBP integrator has been removed.

 

There have also been many subtractions designed to improve the user experience through simplification and streamline performance options. Please note the deprecated sections below as quite a lot has been removed from RenderMan. This In many cases they were a duplicate function and valid options and attributes can be found in the Developer Section of the documentation. These changes may impact your scripts, plugins, pipeline, and more.

Deprecated Ri Calls

  • RiEdits do not function

Deprecated Options

  • Ri:Clipping
  • Ri:DepthOfField
  • Ri:PixelFilterName
  • Ri:PixelFilterWidth
  • camera:zblur - use camera property
  • dice:pretessellate
  • dice.maxhairlength

  • limits:nearhither
  • polygon:pretessellate
  • polygon:nonplanar
  • polygon:reducedmemory
  • curve.orienttotransform

  • searchpath.resource

  • statistics.endofframe

  • limits.zthreshold

  • options.shutter

  • options.polygon.*

  • options.hair.*

  • curve.maxdepth
  • curve.stochasticshadows
  • rerender.logrange

  • rerender.progressive

  • hider.bake.pixelSamples

Deprecated Camera Options

  • nearhither
  • focusregion
  • zBlurNearDistance
  • zBlurNearDiameter
  • zBlurNearFocusDistance
  • zBlurFarDistance
  • zBlurFarDiameter
  • zBlurFarFocusDistance

Deprecated Attributes

  • Ri:CoordinateSystem
  • Ri:ScopedCoordinateSystem
  • bound:displacement
  • compatibility:oldmotionfactor
  • curve:widthminsegments
  • derivatives:centered
  • dice:instancestrategy
  • dice:instanceworlddistancelength
  • dice:maxangle
  • dice:preservecv
  • dice:relativemicropolygonlength
  • dice:resetrelativemicropolygonlength
  • dice:stitch
  • dice:tessellateretainbspline
  • dice:hair
  • dice:roundcurve
  • displacementbound:transform
  • hider:mattemode
  • polygon:reducedmemory
  • procedural:attributes
  • shade:frequency
  • shadegroups:attributecombining
  • stitchbound:transform
  • trace:gritcurves
  • trace.decimationrate

  • trace.displacements

  • volume:compressionerror
  • volume:deptherror

 

Miscellaneous Changes

  • Everything is now an instance within the core of the rendererA change in the display driver channel order now outputs RGBA instead of ARGB
  • The default (current) coordinate space is different. We now render in world space. Previously this was all in camera space. This affects features like the P AOV.
  • RenderMan can now use more than 64 logical cores on Windows
  • Many shading operations are now in object space (displacement is particularly affected and will likely require lookdev or shader changes).
  • Any string that is passed to the renderer must be a "UString" or "unique string". Refer to the RtUString Class in the Developer's Doxygen Guide
  • Curves with normals are supported, as are round curves. But curves with no normals as a notation for desiring always camera-facing curves is not supported. as such, orientation and reverse orientation for curves is no longer supported.
  • For subdiv facessubdivision surfaces, face edits higher than depth 1 are not supported
  • Motion vectors dPdTime and dPdCameraTime have changed
  • RxGetContext is removedAll functions in librx have been removed, including RxGetContext
  • RixTransform API is not the preferred waydeprecated and will be removed soon.
  • Added circular bucket/tile order
  • A new InvalidateTexture call has been added to RixRiCtl.
  • A new mechanism has been added to RixRiCtl to cancel a render
  • Default cache limites limits have been increased to better reflect modern machines
    • Pointmemory Texturememory and Octreememory Geocachememory limits are both now 204804194304
    • Ptexturememory limit is now 32768
    • Opacitycachememory is 1048576
    • Brickmemory is 2097152

 

 

Info
    • 2097152
  • Added motion blurred FOV capabilities and a detail modifier to the PxrCamera plugin
  • Camera options such as depth of field and FOV must be specified through a projection plugin.
  • Alpha and RGBA color sets are now supported. RGBA color sets are emitted as "color colorSetName" and "float colorSetNameA" to allow for ease of shader binding.
  • Increased default precision for RIB export to 9
  • Added Attribute "displacementbound" "int offscreen", please see the Primitive Variables section for an explanation
  • Improved adaptive sampling when using checkpointing
  • JIT compilation of OSL shaders now executes in parallel
  • Added support for interactive arbitrary clipping planes
  • Volume instancing is fully supported, however, density (and motion blur) cannot be altered per instance.
  • Removed the PxrRollingShutter plugin, the functionality exists in PxrCamera

Improvements since Beta 22.0b4

  • Interactive edits of displacement shaders are now possible.
  • Deprecation of Dtex format
    • PxrHairColor allows for either rec709/sRGB or ACEScg for Physical Mode
    Fixed some random number sequence correlation issues with sampling Info

    Improvements since Beta 22.0b3

    • Improved texture filtering results, we improved mipmapping level selection at grazing angles.
  • Methods in the the RixRNG.h header have been changed to be more typesafe.

  • Fixed possible crash when interactively rendering OpenVDB while changing frame number
  • Fixes and improvements to OSL processing.
  • Fixed issues with Checkpointing and discrepencies between Wallclock and Elapsed time
    • Crop windows are no longer limited to the (0,0) to (1,1) square. Going outside the unit square will add overscan
    • Cryptomattes now respect the crop window rather than adding black padding. Now they are always autocropped which may reduce size further.
    • Cryptomatte now defaults to scanline EXR (ZIPS) output. This improves performance in Nuke at the cost of larger files.
    • PxrCryptomatte now supports checkpointing
    • Improved transparency handling in PxrCryptomatte
    • Improvements in point rendering, more speed and less memory usage reported in many scenes. Note point mesh lights are not supported and points cannot be used as closed volumes
  • Corrected EnvDayLight renders since the change in coordinate space
  • Eliminated remains of "shower door" effect (sliding noise) and correlated noise in stereo renders -- in some cases there was correlation between the noise in left/right images.

  • Camera visible infinite lights should no longer affect alpha
  • Alembic archives now render animation and motion blur correctly. Note that .zip archives are no longer supported.
  • Various improvements to PxrMarschner hair from RenderMan 21 have now been ported to 22
  • Baking has been enabled in Renderman 22
    • Improved shadow tracing performance, especially on scenes where lights may not contribute to a point being shaded
    • Alembic geometry is treated as instances when "-instanced" flag is specified
    • Better handling of OpenVDB containers with zero density
    • PxrSurface can now report its IOR when using nested dielectrics, removing the need for users to manually specify the attribute. The attribute is deprecated.
    • Bump Adjust Amount is now defaulted to 1 (it was 0) to remove possible artifacts preemptively when a normal is below the horizon
    • Bump mapping has been improved to avoid light leaking
    • The exrinfo utility now automatically truncates the display of very long strings from the image header.  Use its new -full option to show these in full without truncation
    • The "-d type" command line option now overrides the display type for all displays, not just the primary one
    • Improved the calibration of timing statistics on Linux
    • Methods in the the RixRNG.h header have been changed to be more typesafe
    • Various fixes to volume rendering in 22 will result in different looks in volume rendering from pervious versions, they may appear (much) brighter depending on lighting circumstance.
    • Added a new Primvar for points, falloffpower, float. I f not supplied, or set to zero, the points will have a hard edge. A value of 1 is a "reasonable" value that emulates the usual cosine based falloff; this will likely be the goto value for most people doing volumetric particle effects. Values between 0 and 1 makes the falloff faster, eroding the point faster - point has "less presence". Values higher than 1 (up to infinity) makes the falloff slower to the point of being non-existent.
    • Defaulted the following patterns to Object Space:
      • PxrPrimvar
      • PxrVariable
      • PxrManifold3DN
      • PxrRoundCube
      • PxrManifold3D
    Avoid a crash when rendering Deep EXRs
    • Introduced a new Hider option: "int sampleoffset". This allows several images to be rendered in parallel (with different sampleoffset) and then combined. (Essentially: Users can separate a single render across multiple nodes to share the work and then combine them when complete using a post process.)
      • With non-adaptive sampling:

      • Let's say you render four images with 256 samples each, with sampleoffsets 0, 256, 512, and 768. If you combine those four images, you'll get exactly the same image as if you had rendered a single image with 1024 samples.
      • With adaptive sampling:

      • Let's say you again render four images, each with "maxsamples" 256, with sampleoffsets 0, 256, 512, and 768. Let's say that due to adaptive sampling, some given pixel only gets 64 pixel samples in each of the four images. Then the combined image has been rendered with sample numbers 0-63, 256-319, 512-575, and 768-831. Due to the stratification of the samples, this is not quite as good as if you had rendered a single image with 256 consecutive samples. (However, it is, of course, quite a bit better than rendering a single image with only 64 samples
    .)
  • Attribute "derivatives" "extrapolate" has been un-deprecated. It is now (again) possible to set this attribute to 0, which can be useful for reducing grid edge discontinuities on high-frequency displacements (for example driven by a noise function).

  • Improved shadow tracing performance, especially on scenes where lights may not contribute to a point being shaded
  • Added a new Primvar for points, falloffpower, float. I f not supplied, or set to zero, the points will have a hard edge. A value of 1 is a "reasonable" value that emulates the usual cosine based falloff; this will likely be the goto value for most people doing volumetric particle effects. Values between 0 and 1 makes the falloff faster, eroding the point faster - point has "less presence". Values higher than 1 (up to infinity) makes the falloff slower to the point of being non-existent
      • .
  • An incorrect FOV calculation on cameras has been fixed
  • Info

    Improvements since Beta 22.0b2

  • PxrCryptomatte now supports checkpointing
  • Improved transparency handling in PxrCryptomatte
  • Sample filter, display filter, Bxdf, and pattern plugins now receive k_RixSCIncrementBarrier type Synchronize(
      • )
    callbacks between increments when an integrator has requested an increment barrier.
  • Improved readability of RLF JSON files
  • Fixed a crash with infinite lights
  • Alembic geometry is treated as instances when "-instanced" flag is specified
  • Sample and Display Filter edits are now supoprted in interactive rendering
  • Better handling of OpenVDB containers with zero density
  • PxrSurface can now report its IOR when using nested dielectrics, removing the need for users to manually specify the attribute. The attribute is kept for manual overrides but deprecated
  • Improved texture memory report for /plugins/lightTextureMemory as well as /RIS/Lighting in the artist view
    • Support lights in procedurals
    • . This change allows for:
        -
          • lights to be inside of groups and obey the usual instancing rules (one light in a single group master will yield multiple 'lights' when the group is instanced multiple times)
        -
          • lights to be inside procedurals
        -
          • lights to be inside ObjectBegin/ObjectEnd blocks, included nested ones
      • Protect against memory leaks in the shading scene graph nodes
      • Bump Adjust Amount is now defaulted to 1 (it was 0) to remove possible artifacts preemtively when a normal is below the horizon
      • Fixed an issue where meshes with degenerate faces caused a crash
      • Users should not need a restart when changing crop widnows in interactive rendering.

      • (Constant) instance primvars are now supported through attributes.
      • We do not carry primvars other than P after the first sample on objects with deformation motion blur. Note this is not the case if the shutter open and close time are the same, the renderer must interpolate the sample so the optimization isn't performed.
      • The ReverseOrientation flag is now reset when entering an ObjectBegin block.
      • ReverseOrientation will now reverse the orientation of an ObjectInstance, even if a specific Orientation is defined in the master, this is based on the new way of handling inheritance on instances.

      • Various fixes to volume rendering in 22 will result in different looks in volume rendering from pervious versions, they may appear (much) brighter depending on lighting circumstance.
      • Known Rendering Differences

        • Hair will have more contrast between lit and unlit areas as an incorrect highlight was corrected in 22
        • Incorrect endcaps were fixed on hair and removed for tubes. This has the effect of making the curve slightly shorter by a factor of nearly curveWidth/2 at both the starting point and endpoint of the curve. This makes a bigger difference to short and fat curves
        • High frequency bump maps may be different as an issue with filtering was corrected
        • Change from "camera" to "world" space changes anisotropy, this should be more correct, objects with specified anisotropic direction should be unaffected
        • Mesh lights are half as bright as double contribution was fixed
        • Particle Ng was incorrect in previous versions, this alters their illumination which is now correct
        • All lights now default to off for Visible in Refraction (initial releases)
        • Mesh lights illuminate now even if invisible to all ray types
        Info

        Improvements since Beta 22.0b1

      • Blobbies now render
      • Sample and Display filters now function
      • Light linking now works
      • Reliability of starting and stopping interactive renders is improved
      • S75000 has been improved to show more information about the error
      • AOV Lights should work
      • EXR default should be scanline instead of tiled
      • Normals are not recalculated when bump is set to 0
      • Improved sampling stratification in some cases
      • Defaulted the following patterns to Object Space:
        • PxrPrimvar
        • PxrVariable
        • PxrManifold3DN
        • PxrRoundCube
        • PxrManifold3D
      • Cryptomatte added to RenderMan 22
      • Cryptomatte now supports recovery renders

        Known Limitations

        Interactive/Live Rendering Limitations

        RiEdits do not function, these are removed

        • Crop window edits are restricted to fall inside the original crop windowCamera edits do not update, only camera tansformations (Depth of field, focal length, etc requires restart)
        • Bucket order or size cannot be changed during live rendering
        • min and max samples settings cannot be altered 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
        • Displacement does not update on changes
        • Objects are not re-diced during interactive sessions
        • 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 , we now load immediately.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.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.
        • For PxrUPBP, If the light source is inside a volume, that volume needs to be defined as Volume “box”
        • For PxrUPBP, To get a volume caustic, the object casting the caustic needs to have higher intersectpriority than the volume.
        • Motion blurred polygons do not motion blur normals when deformed. Use Subdivision meshes instead.
        • PxrUPBP is no longer supportedFor 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 thembe 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.

        Beta Limitations

        • Note

          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.

          Geometry: 

          • Dicing cameras
          • Displacement improvements
            • Watertight dicing speed
            • Cracks
          • Brickmaps

          Materials:

          • OSL completeness

          Lighting related:

          • PxrUPBP remains experimental
          • Holdouts
          • Shadow collectors

          Performance:

          • Some performance issues remain

          Image creation:

          • Denoiser bugs remain 
          • dPdtime and motion vectors not correct

          Pipeline features:  

          USD direct read in RenderMan