Page tree

Versions Compared

Key

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

...

  • OSL pattern differences to the old C++ implementation – particularly with noise patterns.  The default implementation of various noises in OSL is different than it is in C++, so if your renders use these noises, you will see different results.  We have provided a backward compatibility switch on the relevant OSL patterns.  However, we don't recommend using the switch unless you absolutely must because the patterns will have better performance in their native mode.

  • OSL noise differences.  In RenderMan 24.0, we have upgraded to OSL 1.10.  Several of the noise patterns have changed implementations in this new version of OSL, causing look differences if you had written your own OSL patterns that leveraged the affected shadeops.

  • The PxrPathTracer and PxrUnified integrators now treat subsurface scattering the same as diffuse with respect to the "maxIndirectBounces" integrator parameter and "maxdiffusedepth" Attribute: 0 means direct diffuse and "direct" subsurface scattering; 1 means 1 bounce of indirect diffuse and 1 bounce of subsurface scattering, etc.  Please note that this results in a slight look change between R24 and R23.x.  We feel that this change is more intuitive for artists and TDs.  It is also consistent with XPU.  Also please note that this results in slight performance differences between R24 and R23.x.  R24 renders slightly slower in scenes with large amounts of subsurface.  If you want to have the same look as R23.x with the same performance characteristics, you can set an Attribute on any subsurface object in your scene to set "maxdiffusedepth" one less than it was previously.

  • PxrSurface now supports two lobed Henyey-Greenstein for single scattering. Existing scenes will need to migrate the "g" parameter to the "g0" parameter.

  • PxrMix parameter "mix" is now "mixer".  This change was necessary because the nodes are now OSL, and "mix" is a reserved keyword in OSL.  The parameter "clampMix" changed accordingly to "clampMixer".

  • The OSL texture3d() function no longer transforms the P parameter from world space to object space.

  • VFX Reference Platform 2019 support.  Note that in some instances, the look will be affected if you have written your own OSL patterns as at least one OSL noise functions has changed. It is known that at least one of the built-in noise operators within OSL has changed, so if you have written your own OSL patterns that use the built-in noises, you may see differences.

  • PxrFlake: Fixed moire artifacts and lower the cost of multiple flake layers (octaves). The pattern has changed but has the same characteristics as the previous version.

  • Blue Noise: In RenderMan 24, we are introducing a new tiled blue noise sample scheme that builds on top of our pmj02 samples. This new sampling scheme shows most visual improvement for low sample counts and simple sample domains such as strong motion blur, strong depth of field, direct illumination from large area lights and dome lights, ambient occlusion, and volumes.  When the image is fed to a denoiser, the new scheme can also help the denoiser better distinguish between noise (that should be smoothed) and actual image features (that should be preserved).  Ironically, the new scheme does not give lower error or improved convergence for each pixel by itself.  But the visual quality is improved when the pixels are considered together. An option is being provided to revert back to the old random number sample sequence if you need the old behavior

  • The default "pixelfiltermode" setting for the Hider is now "importance" instead of "weighted".  This change was made to align RIS to XPU.  If you are not using the denoiser and are using RIS, you may want to consider changing the mode back to "weighted" because in many cases it will render to full convergence more quickly than if "importance" is used.  However, if you're using the denoiser, you need to use "importance" 

  • The default for glassIor initialization in PxrSurface within the code was set to match the Args file.  If you see differences with shading, you may need to explicitly set the IOR to 1.0 within the shading network.

  • For volumes, Oi used to return a single float value to an AOV when a color is expected.  The transparencyAccum of PxrUnified is now a color. This allows PxrUnified to correctly output a colored Oi when given volume with colored extinction. Previously, the monochromatic transparencyAccum was promoted to colored Oi and this is wrong.

  • The PTM occlusion term is no longer automatically applied to the denoising albedo

...

  • PxrSurface
    • Now supports two lobed Henyey-Greenstein for single scattering. Existing scenes will need to migrate the "g" parameter to the "g0" parameter.
    • The new per-instance Attribute "grouping" "int id" [0-15] can now be used to greatly reduce or entirely eliminate biasing artifacts when using the subsurfaceResolveSelfIntersections flag on PxrSurface in conjunction with path traced subsurface. Objects that wish to participate should simply be tagged with a mutually unique set of grouping ids. Upon doing so, a new self-intersection avoidance scheme should help to eliminate biasing issues that lead to highly incorrect subsurface illumination results near close intersections between the geometry, and as a consequence the need to tune or set the trace bias attributes should be greatly reduced.
    • Avoid excessive opacity calls when a utility pattern is connected to PxrSurface where we've seen a more than 2x speedup in our production scenes when large numbers of assets were wired in this way.

  • A new PxrRadialDensity pattern defines a spherical density gradient in a volume container.

  • Color management support.  Added basic ACEScg support. There is now a scene-wide control defining the primary colorspace (Rec709 or ACEScg). Lights, light filters and nodes with color space controls (PxrBlackBody, PxrHairColor, PxrTexture, etc) will obey this setting when set to "Scene". Patterns can override the source and destination colorspace if need be.

  • You can now output AOV's in OSL via the closure debug("AOVName").  No other closures are supported, but arbitrary combinations of debug() are supported to provide AOV's.  Passing them via get/setmessage() is not supported.

  • Bump and normal map shadow terminators.  There is a new parameter added to all the BxDFs to apply a technique that improves the the abrupt shadow terminator line that appear when strong bump or normal maps are used to emulate micro-geometry.  If there is no bump map applied to the BxDF the result produced is exactly the same as it was before.  By default the technique is turned off. To turn on the technique the user just needs to check the "Bump Shadow Terminator" parameter from the BxDF. This parameter is a global parameter, so its  effect will be the same for all the lobes, it means, if it is turned on then it will applied to all the existent lobes of the BxDF (1 in the case of Diffuse but many in the case of Surface).  This is available in both RIS and XPU.

  • Polgyon Polygon shadow terminators.  We have improved shadowing artifacts on coarse polygon meshes.

  • RfH: improved user friendliness of cryptomatte in RfH

  • RfH: apply materials to instance points via instancer

  • it: Added a simple bloom filter to It

  • it: Support OCIO color spaces

...

  •  We now correctly combine the two shadow exclusion subsets defined by Attribute "trace" "string shadowexcludesubset" and the "string shadowExcludeSubset" parameter on Light shaders that support this functionality.

  • RfH: args2hda now supports unicode Unicode characters in parameter/shader help

  • Add a Version string to the rman python module.

  • PxrUnified no longer clamps "numIndirectSamples" to max 1.  Though if you are using path guiding, that code assumes one indirect sample, so leave numIndirectSamples at 1 in that case.

  • More informative message when the alembic procedural fails to read a RLF file.

  • RfM: Color and foat ramp widgets are not enclosed in an extra group anymore, if they share the same label as the enclosing group

  • RfM: The Pixel Variance fields have a five-digits precision instead of 3.

  • Fixed a bug preventing connections to dyanmically dynamically sized array input parameters in OSL shaders

  • Fixed a crash when loading OSL shaders with dynamic array parameters.

  • Fixed a bug where, in some cases, 'motionFore', 'motionBegin' and 'dPcameradtime' would be emitted w.r.t to a camera different from the one being rendered

  • Fixed a bug where scenes with very high light counts could sometimes get stuck for a long period of time during initial scene processing

...