Page tree

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

Compare with Current View Page History

« Previous Version 25 Next »

Contents

Star Wars: The Last Jedi  © and ™ Lucasfilm, Ltd. All Rights Reserved

Welcome to RenderMan 22.0!

Welcome to RenderMan 22. This release introduces improvements to the previous RenderMan in very significant ways.

There have also been many subtractions. Please note the deprecated sections below as quite a lot has been removed from RenderMan. This may impact your scripts, plugins, and more.

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

New Features in 22.0

Revolutionary New Workflow

RenderMan 22 brings truly interactive rendering that works with the artist from concept to completion.

Artists can continuously render while modeling, animating, texturing, shading and more! Previously artists may have had to restart renders to see their changes to their scene during live or interactive rendering. Many of these roadblocks have been removed so that you can continue to work while seeing the image refine. Importing and exporting assets are now visible in-render as are changes to geometry while modeling, updates to animation, object placement, material and light parameter tweaks, even light path expression authoring!

Examples include:

  • Rendering playblasts in RenderMan for client approval on animation
  • Placing textures interactively
  • Refining light position and parameters
  • Authoring Light Path Expressions to capture the right output for post enhancements
  • Importing and replacing assets while rendering
  • Grooming hair for the perfect look
  • Trying new camera angles or framing for the perfect composition

True Interactive Rendering — Rely on RenderMan like never before with the ability to continuously render while you work. We no longer use the intermediate step of rendering to RIB in interactive sessions. See changes immediately and make decisions sooner while refining your artistic choices. RenderMan has the ability to update while artists model scenes, complete layout, perform look development, and much more.  We've removed many of the restrictions that require users restart a render or wait for feedback.

All New Curve Representation — We introduce new curve rendering techniques designed around ray tracing large amounts of curves while editing grooms and looks without needing to re-render to see changes. Now you can comb, style, and dye without having to wait!

Lighting Improvements — Changes to our light selection techniques improve convergence on scenes with many lights and many types of lights at the same time. Move lights and change parameters with immediate results.

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 Maya — RenderMan for Maya has been redesigned. Better integration means less looking for options, fewer clicks, and faster images. Render directly to Viewport 2.0 and see your changes as they happen. Time to first pixel is greatly reduced and your work is uninterrupted.

A New Ray Tracing Core — To compliment our interactive always-on workflow, we've rewritten the ray tracing core to improve speed and quality. Scenes interact quickly and converge faster than ever before!

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 partially opaque effects up to a user-specified depth in the integrator.

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


Important Differences

  • The default coordinate system known as "current" has changed. "Current" space is context dependent and subject to change
    • Displacement is Object Space
    • 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 an instance
  • Note that the light 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.
  • We do not include the Librix library
  • RtToken has been replaced, any string that is passed to the renderer must be a RtUString
  • Curves without normals as a notation for desiring always camera-facing curves is not supported.
  • Dtex format is deprecated, use Deep EXR instead.

 

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
  • derivatives:extrapolate
  • 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 renderer
  • 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.
  • 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"
  • 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 faces, face edits higher than depth 1 are not supported
  • Motion vectors have changed
  • RxGetContext is removed
  • RixTransform API is not the preferred way
  • Added circular bucket/tile order
  • A new InvalidateTexture call has been added to RixRiCtl.
  • Default cache limites have been increased to better reflect modern machines
    • Pointmemory and Octreememory are both now 20480
    • Ptexturememory limit is now 32768
    • Opacitycachememory is 1048576
    • Brickmemory is 2097152

 

 

You should recompile your plugins for 22.0b3 even if you have previously recompiled them, especially any BxDFs you may have written.

Improvements since Beta 22.0b2

  • PxrCryptomatte now supports checkpointing/recovery renders
  • 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
  • We silently clip the crop window to {0.f, 1.f, 0.f, 1.f} and do not emit warnings when out-of-range values are provided. 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.

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 window
  • Camera edits do not update, only camera tansformations (Depth of field, focal length, etc requires restart)
  • Changes to Presence do not update
  • 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

  • Load on demand procedurals, we now load immediately.
  • We do not read point data from OpenVDB files
  • 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.
  • 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.

Alpha Limitations

  • Geometry: 

    • Dicing cameras
    • Utilize smoothed normals
    • Displacement improvements
      • Watertight dicing speed
      • Cracks
    • Brickmaps

    Materials:

    • OSL completeness

    Volumes:

    • Some bugs with results – will not match 21.7

    Lighting related:

    • Light Filter Linking
    • Lights in instances
    • PxrVCM (may have bugs and performance issues)
    • PxrUPBP remains experimental
    • Holdouts
    • Shadow collectors equiv to 21.x

    General features:

    • Baking features

    Performance:

    • Some performance issues remain

    Image creation:

    • Denoiser bugs remain 
    • dPdtime and motion vectors not correct

    Pipeline features:  

    • USD direct read in RenderMan
    • Alembic material assignment