RPS 19.0 Release Notes

RPS 19.0 Release Notes

Welcome to RPS 19!

This release introduces a new rendering mode: RIS. RIS unlocks the potential for significant performance improvements and incredible new photorealistic effects. If your production requires an artist-friendly, physically-plausible workflow supported by a highly optimized rendering engine, the new rendering mode might be the right tool for the job. The traditional RenderMan hybrid/REYES rendering mode continues to be available and still offers advantages to productions that require the highest geometric complexity, multi-pass rendering, deep compositing workflows, and an extremely customizable renderer. Having both modes available in the same rendering engine affords CGI production designers and practitioners the ultimate in flexibility.


RIS

For an in-depth introduction to PRMan's new RIS mode, users should read the RIS ユーザーガイド. Developers should also consult the RIS Developers' Guide. Here are a few key features:

Built-in インテグレータ

PRMan includes two primary built-in integrators - a uni-directional path tracer (PxrPathTracer) and a bi-directional path tracer (PxrVCM) - which are responsible for computing the overall light transport.

Built-in マテリアル and パターン

Production-ready built-in マテリアル and パターン are provided, including the powerful LM マテリアル shading system, designed with a clear layering model for artists, based on real materials.

Render チェックポイント & リカバリー

RIS mode supports render checkpointing and recovery. Checkpoint images can be periodically written for incremental renders. Recovery allows interrupted renders to be restarted from the point where it was interrupted, rather than starting from scratch and overwriting the existing images. Checkpoints are supported by the TIFF and OpenEXR display drivers. Recovery is only supported for OpenEXR.

Instancing

RIS mode and Object Instancing were made for each other - it is almost like getting a license to print free instances.

New REYES Features

RPS 19 also includes numerous important changes and significant new features for the REYES renderer, making it easier to use and to get better and faster results. Particularly notable are significant improvements in sampling and volumes, especially ray-traced volumes.

  • PRMan now ships with three new built-in projections. Rather than the usual projection through an image plane, these trace rays through curved surfaces centered on the viewpoint. The new built-in projections are sphere, torus, and cylinder and are compatible with all modes of the raytrace hider. Note that there is also a new RixProjection API available to RIS users.
  • Motion blur on geometric area lights is now supported. At this time, motion of lights is computed using a single motion segment over the duration of time the shutter is open, regardless of the number of motion segments specified.
  • PRMan now automatically computes an appropriate ray-tracing bias value. Automatic bias is supported via a new attribute: "trace" "autobias". With this attribute on (the default), it is no longer necessary to set "trace" "bias".
  • The rbug() shadeop is now available as a Rix Interface, RixGeoDebugger, giving plugin developers ability to "print" to a 3D viewer.
  • There has been a significant overhaul of the statistics and their representation.

Important Differences

  • With this new release, when using the raytrace hider the importance of each camera ray will be set to 1/(psx*psy), where psx and psy are the PixelSamples values.) Weights of (1,1,1) are used if no weights are provided. If this product is at or below importancethreshold (0.001 by default) in all three color bands then Russian Roulette is used to determine whether or not to trace the new ray.
  • The default policy regarding the number of representations used for object instancing has changed. Please consult the levels of detail discussion in the Object Instancing application note for more details.

API Updates

  • There is a new Rixテクスチャ API, which augments (and, for certain uses, supersedes) the Rixテクスチャ2d API.
  • RixRNG interfaces have been reworked to better support custom RNG schemes. Although the PMJ scheme is still recommended, integrator authors are now able to extend the scheme for path permute purposes. RixRNG::Generator may be subclassed and used to construct a new RixRNG for use downstream from the integrator. Additionally, RixRNG::SampleCtx functions to draw samples have been removed and RixRNG has new functions that take a SampleCtx along with the point index it represents. Modifications for those not wishing to override the scheme should be a fairly straightforward mechanical process.
  • There is now only one flavor of the RixRefract() API function, instead of two, and that one flavor no longer returns incorrect results.
  • The RixSloInfo API now supports querying available methods and struct definitions, and the bundled sloinfo has been updated to use the Rix Interfaces API.
  • There is a new API entry to Rixシェーディング - GetTransform() - which can be used to fetch an array of transform matrices.
  • The RixChooseAndRemap() xi parameter has been changed to an RtFloat (from an RtFloat2), since only one dimension of the random sample is used and altered, allowing it to be used for 1D and 3D random samples.

Updated Defaults

  • The default geocachememory and texturememory cache sizes for RPS have been increased to 2048mb.
  • By default, the GUT cache is now disabled for rangedcurves gprims; however, it can be re-enabled via Option "curve" "int usegutcache" [0|1] or in rendermn.ini with /prman/curve/usegutcache [0|1].
  • The default "ptexturememory" cache size for RPS has been increased to 1024mb.
  • PixelVariance now defaults to 0.001.

Additional Changes

Hair/Curves

  • Hair Widening - Option "hair" "float minwidth" is now supported for ray tracing (in all modes of PRMan). When "minwidth" is non-zero, the ray tracer will now automatically widen curves (and points) and make them more transparent in order to reduce geometric aliasing. For all rays other than transmission, the transparency is stochastic - the hit is either fully present or is fully missed, with probability of being fully present equal to the transparency. For transmission rays, the transparency is not stochastic. This may result in performance penalties when using expensive opacity shaders, so caution is advised.
  • Filter Regions - filterregions computed on curves with Attribute "dice" "int hair" [1] are now non-degenerate for the special case of fr->calculated3d(P).
  • Several issues with ray-traced roundcurves (particularly pertaining to the cylindrical approximation, the calculation of normals, biasing, and the use of areashadow()) have been addressed.
  • Thread scalability has been improved for ray-traced curves.

インタラクティブレンダリング

  • Edits to object-instanced lights are now supported during interactive renders.

Volumes

  • Ray-traced RiVolumes (particularly those using complex ImplicitField DSOs) are significantly faster to render. In particular, opacity and radiosity cache lookups are much faster and will no longer evaluate the field function of a DSO (EvalMultiple and related methods will not be invoked per ray). This can significantly improve the performance of ray-traced shadowing and global illumination, but users should note that the opacity function of the shader can no longer be a function of the field function (they should not use the built-in variable VolumeField).
  • Performance of the OpenVDB plugin has been improved.

Object Instancing

  • Memory consumption for object instancing has been reduced. This memory reduction has been focused on reducing memory associated with opposite extremes: millions of instantiations of light weight masters, and masters that are made of extremely complex geometry.
  • Added support for defining ScopedCoordinateSystems within object instance definitions.

Miscellaneous

  • Adaptive sampling has been improved, providing more accurate and less noisy results, specifically when using "string samplemode" "adaptive" with "string integrationmode" "path". The new algorithm is smarter about estimating when a region has converged. It's less sensitive to geometric and shading complexity, and more sensitive to Monte Carlo noise.
  • There is a new optional argument to generatelightingsamples() and evaluatelightingsamples() - "forceemissionbias" - which can be used to compel non-emissive geometry to use emissionbias. This defaults to "auto" - behavior changes based on whether the geometry is a light or not.
  • prman now supports command line options to override the maxsamples and pixelvariance parameters, e.g. prman -maxsamples 512 -pixelvariance 0.002 ...
  • directlighting() and indirectspecular() now work with multi-camera renders.
  • The possible values for the optional "hitmode" parameter to the indirectspecular() function have been updated for consistency.
  • シェーディング context memory consumption has been significantly reduced.
  • In previous versions, the random() shadeop returned a different random value for each of the three points on a ray hit grid. it now returns the same random value at all three points, making it easier to avoid e.g. too different random microfacet normals for reflection directions.
  • Photons scattered from surfaces are now raytype "photon". Prior to PRMan 19, only photons emitted directly from light sources had raytype "photon" and photons scattered from surfaces had raytype "specular" or "diffuse".
  • The textureinfo() function can now query "resolution" for per-face (PTex) textures.
  • テクスチャ resolution can now be clamped, using a new "maxtextureresolution" Attribute to prevent the texture lookup from going deeper than a specified resolution.
  • The bspline and bilinear filters in the Rixテクスチャ interface now support 16-bit textures.
  • Brickmap geometry now has improved support for various non-default dicing strategies (including "worlddistance").
  • There is a new pretessellate Attribute that can be used for more fine-grained control over whether to pretessellate subdivision surfaces into polymeshes or not.
  • Stochastic transparency for shadow rays on curves is now supported, via Attribute "curve" "int stochasticshadows" [1], Option "curve" "int stochasticshadows" [1], or /prman/curve/stochasticshadows [1]. The attribute takes precedence over the option, which in turn takes precedence over the rendermn.ini setting. It is on ([1]) by default.
  • Alembic 1.5.0 is now supported, including the Ogawa file format.

Licensing Changes

  • The licensing software has been updated. PixarLicense 11.0 addresses security concerns and provides a version of LicenseApp for all platforms. Please consult the installation and licensing documentation for more information.

Bug Fixes

  • Addressed an issue with ray coalescing that adversely affected memory performance.
  • Several issues with the stdrsl OrenNayar header file have been addressed.
  • Several lighting services issues have been addressed:
    • Fixed a bug in the determination of lobe weights for generateSamples.
    • Fixed a bug that prevented evalSamples from using sampled lobes when nsamples > 1.
    • Shadeop interfaces to Geometric Area ライト now perform correctly on 3-point grids.
  • Fixed a bug that could cause crashes when using Geometric Area ライト with a nonzero "motionfactor" or "focusfactor" setting.
  • Addressed an issue that could adversely affect facevarying sharpness on subdivision surfaces.
  • Fixed a bug that could cause a crash when using frame frequency multi-segment motion blur on object instances.
  • Fixed a bug that prevented RI variable substitution settings from being inherited by procedurals.
  • Addressed an issue with RiProcedural2 that could cause a potential clash if a procedural included a "filename" argument.
  • Transmission rays that intersect certain geometry types more than once (in particular, curves) now accumulate the correct result.
  • Fixed a precision bug that could lead to an infinite loop when rendering curves.
  • Fixed a bug where non-adaptive areashadow() could get the wrong derivatives on a combined grid and have inaccurate origin jitter.
  • Fixed a bug in the shutter-close bounding of gprims with motion samples extending past shutter-close when tracing motion and Option "shutter" "clampmotion" is disabled.
  • Resolved an issue wherein instanced polymesh geometry could inadvertently disappear.
  • Addressed a bug wherein polymesh object instances were not getting decimated properly for the radiosity/opacity cache.
  • Resolved an issue that could result in degenerate normals (NaNs) on polymesh object instances when using the radiosity/opacity cache.
  • Addressed an issue that could cause some shading points to incorrectly skip the else clause of a gather("samplepattern") call when shading ray hits.
  • Reduced the number of calls to implicit plugins' Eval/EvalFiltered/EvalMultiple/EvalMultipleFiltered routines that are needed to resolve implicit surfaces close to the camera.
  • Fixed an issue with the subsurface() function that could cause darker and color-shifted subsurface results in secondary bounces when ray tracing and using motion blur with samplemotion enabled.
  • Fixed a bug that in rare circumstances could cause crashes in REYES re-rendering.
  • To- and from-"world" transforms now work as expected during re-rendering ("raytrace" hider only).
  • Addressed an issue that could prevent Attribute "visibility" "int indirect" from working correctly under certain circumstances.
  • Fixed a bug that could cause a crash when using an object instance with the same co-shader state as its object definition.
  • Fixed a bug that could cause shadowing artifacts when object instancing.
  • Fixed bugs causing potential for artifacts in results from occlusion() or indirectdiffuse() calls using falloff or experiencing ray continuations; the artifacts stemmed from falloff and ray continuation not accounting for bias, and so were most apparent on geometry needing a large bias.
  • Fixed the dPdtime vector returned by Subdivision Surface API queries of geometry undergoing transformational motion when the results were requested in a space other than camera.
  • Addressed artifacts that could arise in cases of extreme motion blur where objects are moving past the camera/eye-plane.
  • Fixed a curve rendering bug that could lead to a race condition and thence to a crash.
  • Fixed a memory leak that could occur when rendering a large number of brick map gprims.
  • Fixed a bug that could lead to over-splitting ranged curves, which could in turn cause a hang and an egregious spike in memory consumption.
  • Fixed a bug that could lead to blurry glossy reflections of environment maps when using the raytrace hider.
  • Spurious compiler warnings have been suppressed.
  • Fixed a bug that could lead to excessive memory consumption when pre-tessellating.
  • Fixed a Ptex pretessellation bug that could cause incorrect results.
  • The "ptexturememory" and "ptexturemaxfiles" limits now obey the /prman/constantmemorylimit setting. Note, this means that for a render with n threads, with the default settings the amount of memory given to Pテクスチャ will effectively be 1/n'th of what it was in 18.0 and earlier.
  • Addressed a pretessellation issue that could cause incorrect results for derivative AOVs.
  • Addressed an adaptive sampling/AOV bug that could cause bleeding across the filter in the beauty pass at the edges of an object.
  • Fixed a bug wherein using the raytrace hider without adding any Display lines would cause prman to crash.
  • Addressed a (REYES mode-only) bug wherein rendering a deep shadow map while using an AreaLightSource would cause prman to crash.
  • Fixed a REYES re-rendering bug that could result in a crash when moving or deforming a geometric area light.
  • Fixed a crashing bug that could occur when the motion block and shutter do not line up.
  • Fixed a bug that could lead to a crash when using REYES re-rendering and accessing Pテクスチャs in an AreaLightSource shader.
  • Fixed a bug that could cause ray-traced motion blur to inadvertently affect normals when the blurred geometry has ST values attached.
  • Fixed a transparency issue that could lead to line artifacts on curves with minwidth > 0.
  • PRMan no longer crashes when attempting to render an emissive curve (which is unsupported at this time).
  • Fixed a potential for infinite loop when indirectdiffuse() rays hit both semitransparent geometry and RiCurves.
  • Fixed a bug wherein the renderer would crash when geometry visible to ray tracing contains infinite or NaN transforms or vertex coordinates; infinite or NaN vertex coordinates now trigger an error and cause the gprim to be ignored, and infinite or NaN values in transform matrices are replaced by zero or RI_INFINITY, respectively.
  • Fixed the return detail of string primvars queried with GetPrimVar() during opacity or displacement shading.
  • Corrected the result of querying dPdtime using the Subdivision Surface API when the clampmotion shutter option is disabled and both transformation and deformation blur are present on the mesh.
  • The renderer now shuts down cleanly when the raytrace hider is interrupted by a piped display driver closing.
  • Fixed a (REYES-mode) bug wherein darkening artifacts could occur when multiple near-opaque volumes were included in the same area shadow map.

Changes in 19.0_1497244

Miscellaneous Changes in 19.0_1497244

  • Added an input AOV parameter to PxrSkin, similar to what's available with the PxrLM shaders.

Bug fixes in 19.0_1497244

  • Fixed a bottleneck on multi-threaded renders with global named coordinate systems.
  • Fixed a memory leak that happens during piped preview renders.
  • Fixed a threading deadlock that occurred when rendering instances.
  • Fixed a crash with fixed sample count and light linking.
  • Fixed a bug causing a small chance for raytraced reduced memory polygons to get incorrect vertex positions.
  • Fixed a bug causing artifacts in renders with environment lights and portals.

Changes in 19.0_1484599

Miscellaneous Changes in 19.0_1484599

  • Allow passing a new parameter "position" to the RSL function generatelightsamples().

Bug fixes in 19.0_1484599

  • Transformations were happening at shutter open, now the transforms on primvars correctly occur at ray time. Now transforming primvars to object space will give consistent results.
  • Fix a crash when using large triangles as geoemtric area lights.
  • Fixed a bug where presence & opacity queries did not return valid scTraits.
  • Object to World transforms now maintain more precision.
  • Improve multi-thread reliability when using the PxrVCM integrator.
  • Fixed a bug that prevented camera visibility from working reliably on instanced geometry.
  • Address memory corruption when using sloinfo in the Katana procedural.
  • Fixed a bug which prevented gather() from firing transmission rays if the maxdiffuse depth was zero.
  • Fix a bug which caused NaNs in REYES renders, when using geometric area light sources that intersected other blocking geometry.
  • Fix transformation blur on heterogeneous volume renders.
  • Fixed a bug which prevented matte objects from scattering indirect light in RIS renders.
  • Width scaling on instanced Reyes curve primitives is now correct.

Changes in 19.0_1468883

New Features in 19.0_1468883

  • PxrSeExpr and PxrPrimvar now support a new builtin variable called "curvature".

  • Added a new hider option called, "int othresholdclamp". The default value is 0, meaning the current "othreshold" behavior. If the value is 1, then when then othreshold is reached, the opacity of the pixel will be set to 1.

  • Added a new REYES-only curve attribute widthminsegments to set the minimum number of segments to be used across the width of a curve.

  • txmake now has a -dirmap option that allows dirmapping to be applied to both input and output files. The syntax for the option is similiar to how one specifies dirmapping with RiOption "searchpath" "dirmap". Ex:

    txmake -dirmap [\"NFS\" \"z:/\" \"/mnt/\"] -dirmapend z:/woody/textures/input.tiff z:/woody/textures/output.tex

Miscellaneous Changes in 19.0_1468883

  • Performance optimizations have been made to PxrFractal and PxrVoronoise patterns.
  • Improved performance of ray intersections with motion blurred geometry.

Bug fixes in 19.0_1468883

  • PRMan no longer crashes when AOVs are used in conjunction with checkpointing.
  • PRMan no longer crashes and/or takes a very long time to render when using dense subdivision or polygon meshes as geometric lights.
  • Addressed Ptex resolution errors on subdivision meshes when they are pre-tesselated.
  • Fixed an issue where the CPU heatmap in the statsfile would sometimes show all black. It is now more accurate in some circumstances as well.
  • Setting path integration, incremental, and checkpoint options while using the REYES hider no longer causes a fatal R90007 display error.
  • Fixed a crash that could happen when using object instancing and a very large offscreenmultiplier value.
  • Fixed a bug that would cause artifacts when displacement shaders wrote to dPdtime, but the scene did not have motion blur.
  • Improve the quality of light localization mode 3 for REYES, at the expense of a little performance.
  • Bug fix for REYES rendering that ensures sample weights are correctly zeroed if a user's evaluateSamples function chooses not to evaluate a diffuse lobe.

Changes in 19.0_1457856

New Features in 19.0_1457856

  • There have been significant improvements to sample distribution between lights and across the surfaces of some light types, leading to a reduction in noise, especially in the cases of environment and rect lights. The two new features: a new light localization mode and a way to define the resolution of rectlights, can be enabled in the rib as follows:

    Option "shading" "int directlightinglocalizedsampling" [3]

    ジオメトリ "rectlight" "constant float[2] resolution" [x y]

    For more information see the lights documentation.

  • New artist-friendly stats viewing system added to 19.0! Developer level stats are also available with the new styling by adding #expert to the end of the url when viewing stats files in a browser. These expert stats display the heat maps in addition to all information in the stats files that might be useful for developers working on plugins for PRMan.

  • RiMatte can now be specified per instance in RIS and REYES.

  • RMSGeoAreaライト and RMSEnvライト now have an added "Max Shadow Distance" control. This feature provides a useful way to cut down raytracing time and achieve a short-range ambient-occlusion look with a white environment light.

  • Implemented pixel filter importance sampling. This performs pixel filtering by warping the samples in screen space around a pixel center and averaging the pixel's samples with equal weight and without sharing samples across pixels. Some image postprocessing algorithms may require this to avoid contaminating neighboring pixels with high variance samples. However, it does produce noisier images. The importance filter sampling can be implemented by the following rib line:

    Hider "raytrace" "string pixelfiltermode" ["importance"]

    The default setting sets pixelfiltermode to "weighted" rather than "importance".

Miscellaneous Changes in 19.0_1457856

  • The ability to override object instance visibility has returned for 19.0.
  • Added "monotonecubic" as a supported RSL spline() basis to match Houdini.
  • Added support for arbitrary normals in the PxrHair bxdf with a new inputN parameter.
  • Updated examples in the examples directory to demonstrate new features.

Bug fixes in 19.0_1457856

  • Varying/textured stop values in PxrExposure now render correctly.
  • txinfo no longer crashes for non-RenderMan texture files, such as .exr files.
  • Fixed display driver memory consumption issues.
  • Modified geometric area lighting to better handle sampling of lights with multiple patches. This also fixes a crash.
  • Added support for combining clearcoat with PxrLMSubsurface.
  • Fixed a bug where altering a mutable shading context led to global side effects on P.
  • Fixed an issue where IES profile files were not correctly converted via directory mapping for Windows.
  • Removed the irrelevant center parameter from PxrBump.
  • Fixed a motion blur bug for geometric area lights.
  • Fixed a bug causing potential for a crash when doing surface edits during pathtraced rerendering.

Changes in 19.0_1446187

New Features in 19.0_1446187

  • The documentation has been updated to include separate RIS-only, Reyes-only, and RIS & Reyes sections for RiAttribute, RiOption, and RiProcedure information.
  • Here Comes the Sun! The PxrEnvDayLight shader now has parameters for exposure and heliodon (for real this time).
    • For helidon, users can specify month/date/year, hour, time zone, and latitude/longitude to automatically calculate the sun position.
    • The exposure parameter scales the light intensity. Setting the month to 0 uses the explicitly given direction instead of automatically computing it.
    • Improvements to solar disk sampling reduce aliasing and intensity flicker. This change results in less need for high resolution envsphere and low shading rates.
  • The plugin: impl_openvdb.cpp has been published for use with custom versions of OpenVDB. This file can be found in $RMANTREE/lib/examples/volumes/plugins

Miscellaneous Changes in 19.0_1446187

  • PxrHair and PxrDisney shaders now include an input AOV parameter for PxrMatteID.
  • Improvements to raytraced object instancing statistics.
  • Added a warning for connections between colors and point type parameters in pattern graphs.
  • Multiple improvements to light sampling for noise reduction.
  • Several fixedsamplecount changes:
    • Enhanced fixedsamplecount on lights so that it works for bounces beyond the first camera hit, but uses a reduced sample count of 1 for any lights where the user has specified a non-zero count.
    • Added fixedsamplecount to the EnvMapLight and PxrEnvDayLight shaders.
  • Off-screen geometry whose displacement bound is onscreen is now diced at the same rate as onscreen geometry to prevent displaced geometry that appears onscreen from being under-diced. Old dicing behavior can be returned by using this renderman.ini setting: "/prman/dice/offscreenignoredispbound 1"
  • Added a special mode (controlled by an option and rendermn.ini setting) that automatically rejects any irradiance radiosity cache values that are equal to -1.0. The new option is named "shade:radiositycacheomitminusone", and the rendermn.ini setting is "/prman/radiositycacheomitminusone 1". Use "1" to enable the setting or "0" to disable it.
  • New Option "hair" "traceminwidth" [-1] for REYES. Users can now set traceminwidth only, and leave minwidth at zero to have the hair widening affected by the state of the sigma buffer. Leaving the sigma buffer off will result in widened raytraced hair, while turning the sigma buffer on will result in hair widened in raytrace mode and hair widened in REYES with stochastic sampling.

Bug fixes in 19.0_1446187

  • Fixed a bug where plugging a texture into PxrHair's kr parameter produced grid artifacts.
  • Addressed a memory issue that arose when a large number of AOVs were output during a render.
  • Fixed a bug that caused artifacts on subdivision surfaces when displacement and pretessellate and motion blur were all used.
  • Fixed a bug where instances were not properly inheriting doubleshading in REYES mode.
  • Fixed a bug that caused crashing during multi-threaded brickmake.
  • Silenced a warning in PxrTexture for empty filename.
  • Fixed alpha channel output of matte objects inside a volume.
  • Addressed issues with Maya Fluid cache "auto-resize" and "time per frame" settings.
  • Fixed an issue with the gridsize option that was causing a crash.
  • Fixed a bug where OpenEXR maps using OIIO textures where being read incorrectly.
  • Fixed bugs with surface editing in REYES raytraced re-rendereing where displacement dependencies and primvar shader bindings were broken.
  • Fixed a bug in the calculateNormal() shader function for ray-traced curves.
  • Addressed several sigma buffer issues.
  • Fixed a bug where prman would crash at the end of a render if there was a bxdf in an archive.

Changes in 19.0_1433433

Important Changes in 19.0_1433433

  • Improved functionality of PxrLM layered shaders and materials. For more information, please see the new PxrLM Guide. Also, please refer to the new PxrLM FAQ for answers to frequently asked questions.

New Features in 19.0_1433433

  • The PxrEnvDayLight shader now has parameters for exposure and heliodon. For helidon, users can specify month/date/year, hour, time zone, and lat/long. (REYES and RIS)
  • A new "remap" control has been added. This parameter can be added to either RiDisplay or RiDisplayChannel. The new parameter can help in dealing with very bright specular and glossy highlights as well as directly visible light sources. Please consult the フィルタリング for more details. (RIS)

Miscellaneous Changes in 19.0_1433433

  • Similar to the PxrLM bxdf's, PxrDisney and PxrHair now have an inputAOV parameter. Users can connect an AOV pattern like PxrMAtteID to trigger AOV output. (RIS)

  • The "importance" parameter to the emit() shadeop is now supported in both REYES and RIS rendering modes.

  • PxrSeExpr can now access Pobj (object space P). Optionally, users can append either Obj, ObjN, or ObjV at the end of a primvar name to choose how data should be transformed. (RIS) サンプル:

    $__Pref : the "__Pref" primvar.

    $__PrefObj : the "__Pref" primvar transformed as points in object space.

    $__NrefObjN : the "__Nref" primvar transformed as normals in object space.

    $myvecObjV : the "myvec" primvar transformed as vectors in object space.

  • バンプ mapping has been added to the subsurface bxdfs: PxrLMSubsurface, PxrSkin, and PxrSubsurface. (RIS)

  • A histogram key has been added to the heatmap in the stats XML file. (REYES and RIS).

  • PixelFilter updated to automatically conform to nominal filter size when width or height parameters are set to 0 or less. e.g.:

    PixelFilter "box" 0 0 : defaults to 1 x 1 box filter

    PixelFilter "catmull-rom" 0 0 : defaults to 4 x 4 Catmull-Rom filter

  • Improved memory allocation for shading calculations.

  • The integrators PxrPathTracer, PxrVCM, and PxrDirectLighting now support surface matte and/or volume matte objects. (RIS)

  • GetTransmission can now be called from a volume shading context returned by BeginVolumeサンプリング.

Bug fixes in 19.0_1433433

  • An issue with transforming primvars when motion blurring has been fixed (REYES).
  • Fixed a crash that would arise when an empty string was passed in for "profilemap" parameter to the emit() shadeop. (REYES and RIS).
  • A bug that caused normals to be invalid when running displacement shaders on second bounces has been addressed. (REYES)
  • An issue with grid-like artifacts on curves has been fixed. (RIS)
  • A bug that caused readprimvar() to return incorrect results when raytracing volumes has been addressed (REYES).
  • Fixed issue where pixels with negative filter weights would appear black when path tracing.
  • Addressed a texture filter bug for RIS with BSpline filters (RIS).
  • The LicenseApp pops up every time installation of RenderMan finishes to avoid confusion during upgrades.
  • Fixed a bug in file browsing when using PxrPtexture (RIS).
  • Fixed a bug that caused irregularity in renders involving sss bump mapping (RIS).
  • Recovery using the -recover option for prman is now enabled for all renders that have display drivers with the string "exr" in their name. Previously only openexr was accepted.
  • Improved functionality of PxrBlend node. Dissolve mode now functions properly.
  • PxrDisney now prevents negative colors when present with invalid normals.
  • Improved ray intersection to reduce pinholes.
  • Improved deep image output. カラー fidelity along depth has been improved (RIS).

Changes in 19.0_1421791

Miscellaneous Changes in 19.0_1421791

  • Display and DisplayChannel now support statistical AOVs, via a new parameter: "string statistics". Currently, this can be one of three values:

    "even" or "odd": produces results similar to regular renders except that each AOV gets splatted by only half the camera samples. This produces two noisier but independent images. The square of their difference is an unbiased but noisy estimator for the variance.

    "variance": produces an image with a direct estimate of the incremental variance. It can be much more accurate but requires the output of a matching normal AOV with the same variable (may be aliased on DisplayChannel with "source" parameter) and pixel filter to operate. For best results at this time, "box" 1 1 is recommended.

  • There is a new option to the raytrace hider for controlling channels that are considered by the adaptive sampler: Hider "raytrace" "int adaptall" [1]. The default, 1, keeps the current behavior - all channels that use normal pixel filtering are considered when deciding if a pixel is converging. Setting it to 0 will restrict it to the RGBA beauty pass only and ignore AOVs.

  • Subsurface scattering in RIS mode now supports bumped normals.

  • The PxrFlakes node has been improved.


Bug Fixes in 19.0_1421791

  • Fixed a bug wherein volume interiors were running on the wrong interval, leading to blocky artifacts or loss of extiction and total internal refraction.
  • Fixed an instancing race condition that could lead to a crash.
  • Fixed a bug that could lead to bucket artifacts in REYES-mode multi-camera rendering.
  • A bug in the interpolation of vertex variables on ray-traced CatMark subdivision surface patches at extraordinary vertices has been fixed. For displacement-mapped versions of such surfaces there will now be a better match between the REYES version and the ray-traced version of each patch, avoiding false self-intersections with the automatically-computed autobias.
  • Addressed an issue with motion-blurred facevarying vars that could potentially lead to a crash.
  • Addressed a bug that could cause artifacts/fireflies due to inadvertent ray misses when u or v is slightly below 0.0.
  • Pretesselation now generates normals as expected with instanced subdivision surfaces in RIS mode.
  • Issues with PxrBump have been addressed.
  • Addressed a catrib bug that could inadvertently bork strings of tremendous length.
  • Fixed a regression that generated invalid s/t data on motion-blurred geometry.

Changes in 19.0_1417965

Miscellaneous Changes in 19.0_1417965

  • IES profiles have been improved:
    • IES profiles can now cover more than 180 degrees. The old behavior can be restored through a new rendermn.ini setting: "/prman/shade/ieslegacymode 1".
    • IES profiles on spot lights now default to the correct projection.
    • IES profiles on spot lights are now masked by the cone.
  • OSL is now supported on Windows.
  • option(), RxOption, and GetOption can now fetch "dice:offscreenmultiplier".
  • When using the -capture option for prman, procedurals are now placed in the same directory as the captured RIB file.

Bug Fixes in 19.0_1417965

  • Addressed a REYES issue with RiVolume that could lead to artifacts when rendering deformation blur.
  • A bug that could cause issues when using u/v/w values in a pattern network for volumes has been fixed.
  • Fixed a PxrVCM bug wherein continuations rays could inadvertently contribute to scattering LPEs.
  • Addressed a sampling bug in PxrVCM that could cause bucket artifacts under certain rare circumstances.
  • Issues with layering subsurface effects in the PxrLM マテリアル have been addressed.
  • The attribute for PxrTexture, “user:maxtextureresolution” computed a texture resolution that was 2x smaller than it should have been. The correct resolution is now computed.
  • Fixed a bug wherein Non was inadvertently returning the displaced normal in some cases.
  • Addressed an issue that could result in a crash when rendering volumes with PxrPathTracer.
  • Addressed issues with MIS that could arise when a given lobe had zero samples.
  • Fixed a PTex bug that could lead to a crash when rendering deforming polygons or subdivs that are tiny on screen.
  • When using the -capture option for prman, procedurals are now placed in the same directory as the captured RIB file.

Changes in 19.0_1411153

Miscellaneous Changes in 19.0_1411153

  • There is a new "offscreenmultiplier" option to scale the effect of the "viewfrustumdistance" offscreen dicing strategy for objects outside the viewing frustum.
  • Volume sampling has been improved.
  • テクスチャ cache performance has been improved in the PxrVCM integrator.
  • There have been minor updates to PxrLMLayer.

Bug Fixes in 19.0_1411153

  • Fixed a bug wherein txinfo could report the wrong uncompressed size for Pixar format textures with larger than byte-sized channels.
  • Fixed a bug with pre-tessellated, displaced, motion-blurred, deformed subdivision surfaces that could result in shutter open positions being overwritten by the shutter close positions, resulting in wacky motion blur.
  • Fixed a bug causing the contribution of semitransparent geometry to an areashadow() result to be erroneously doubled if the areashadow call also uses a traceable deep shadow map.
  • Fixed a bug where instanced curves with spatial grouping on would be incorrectly trivially rejected.
  • Fixed a bug that could lead to a crash when using the Subdivision Surface API to evaluate large faces with many primvars or AOVs.
  • Fixed a bug that caused PxrPrimvar to return incorrect results on float u/v/w lookups.
  • Fixed a bug that could lead to artifacts when rendering emissive volumes.
  • A bug that prevented txmake from writing uncompressed Pixar format textures has been addressed.
  • Fixed a bug in the indirectspecular() function that could lead to a crash.
  • Addressed URI encoding issues that could affect RTX plugins.

Further Information

For more information, users should also consult:


Documentation Changes

  • The RenderMan Pro Server and RenderMan Studio are now combined in a unified "RenderMan" documentation bundle. All of the information from the separate documentation packages is still included, with improved search results and simpler organization, in a single location/download.
  • The documentation includes an entire new section devoted to the new RIS mode of PRMan, but there is additional important new information pertinent to RIS and PRMan's other modes of operation.

Caveats and Known Issues

RISsues

  • Multi-camera (stereo) rendering does not work in RIS mode.
  • Pixel imager shaders are not supported for deep output in RIS mode.
  • PxrOSL has several known limitations enumerated in the node's documentation.
  • Refinement methods are not supported at this time.
  • Instanced NURBS will disappear unless instanceworlddistancelength is explicitly set.
  • The adaptive noise suppressor is not yet applied to deep output in RIS mode.
  • レンダリング via netrender currently only works with "bucket" screenorder and non-progressive rendering. Additionally, only pixel size filters are supported for RIS netrender.

Volume Caveats

  • When intersectpriority is used, currently, inner volumes that have a lower intersectpriority may not run correctly at the location that an outer volume with a higher intersectpriority exits.
  • Volumes should not be modeled so that they are coincident with surfaces.
  • Opacity caching is not used for volumes in RIS-mode. For homogeneous volumes this results in faster renders. For heterogeneous volumes this is currently resulting in noisier and slower renders. We are actively working on addressing this in a subsequent release.
  • Users of RiVolume should now ensure that the bounds do not intersect geometry (we may alleviate this restriction in a future release).