Page tree

Versions Compared

Key

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

...

This document lists the main issues for developers who are migrating from 23 to 24/25.25 to 26

For migration from 22 23 to 2325, please refer to Migrating from 22.x to 23.

Parameter Lists

  • pxrcore::ParamList has been split into ParamList and PrimVarList; the distinction is that RtPrimVarList is preferred for geometry calls.
  • RtParamList.h has been removed; the typedefs for RtParamList and RtPrimVarList have been moved to RiTypesHelper.h

Riley

23.X to 25.

Riley

There have been many changes in Riley in order to streamline the creation of displays and cameras, as well as to allow for the editing of options. Please note that as of PRMan 2426.0, Riley should still be considered an unstable interface.

  • The Riley header file is now namespaced by version (currently 0.3). The Riley class is now accessible as 'riley::vX_Y::Riley'. In order for this to be forward-declarable, a new header 'Riley_ version .h" has been added which only contains the versioned namespace information. By default, the versioned namespace is also imported into the 'riley' namespace, so that the various Riley API components can also be accessed by only using 'riley::Riley'.
  • The Begin() and End() routines have been removed.
  • The use of the term "Master" has been completely replaced with "Prototype" throughout.
  • RenderViews are now first class citizens:
    • RenderViewId has been added.
    • CreateRenderView(), ModifyRenderView(), and DeleteRenderView() has been added.
    • The RenderSettings struct has been removed.
    • Render() now takes a RenderView, which contains the information about the camera, integrator, and render target to render.
  • SetRenderOptions() has been renamed to SetRenderSettings().
  • SetActiveCamera() has been renamed to SetDefaultDicingCamera().
  • CreateGeometryMasterDeferred() has been removed.
  • Several new structs have been added in order to simplify parameter lists for certain routines:
    • RenderOutputList (affects RenderTarget and Display routines)
    • FilterSize and Extent (affects RenderOutput and RenderTarget routines)
  • A new riley::UserId class has been added to facilitate statistics gathering.
  • CreateMaterial() and ModifyMaterial() now accept parameter lists.
  • The ScopedCoordinateSystem struct has been renamed to CoordinateSystemList.
  • CreateDisplayFilterChain() has been replaced with CreateDisplayFilter(), ModifyDisplayFilter(), and DeleteDisplayFilter().
  • CreateSampleFilterChain() has been replaced with CreateSampleFilter(), ModifySampleFilter(), and DeleteSampleFilter().
  • SetClippingPlanes() has been replaced with CreateClippingPlane(), ModifyClippingPlane(), and DeleteClippingPlane().
  • CreateRiley() now accepts a RtParamList, which allows the behavior of the Riley variant to be changed based on supplied parameters.
  • A new InvalidateTexture() method has been added, allowing textures to be invalidated directly via Riley.
  • Two new methods SetRenderOptions() and SetRenderMetadata() have been added to support general options edits. These calls can be made while Render() is running.
  • The Id types have been changed from enums to classes.
  • Inconsistencies in the order of array parameters and the size of those arrays have been addressed.
  • Inconsistencies between the Create and Modify routines with respect to modifiable parameters that have array types have been addressed.

Rix Shading Plugins

...

  • ShadowFilter(): this is called after Filter() has run and after the default shadow rays have been traced. The new method can be used to calculate new transmittance values.
  • CreateMutableContext(): this method can be used to re-evaluate connected inputs to the lightfilter, which would be typically done after changing builtins of the shading context with RixShadingContext::SetBuiltinVar().

...

  • incremented to 0.4. 
  • An inconsistency in const correctness for ModifyRenderOutput() has been corrected. 
  • New methods have been added for creating, modifying, and deleting instances in batches: CreateGeometryInstances(), ModifyGeometryInstances(), DeleteGeometryInstances(), CreateLightInstances(), ModifyLightInstances(), and DeleteLightInstances(). Currently, these routines do not have any significant advantages over their non-batched versions (and both RIS and XPU have had significant speed improvements when using the non-batched calls); however, in future releases, these methods may provide significant speedups for operating on large numbers of instances. Note that the Create and Modify routines have specific requirements for memory allocation; for more information, please refer to the Riley.h header.

RixRiCtl

  •  PRManBegin() and PRManEnd() have been augmented with new separated calls for "system" and "render". The old entrypoints are still there for standalone renders, but under the hood have been rewritten to use the new split API. These routines allow DCCs to intermingle rendering via the USD Hydra delegate and via the traditional direct calls.
    • PRManSystemBegin() and PRManSystemEnd() is for application startup and shut down. Nested system begin calls are reference counted.
    • PRManRenderBegin() and PRManRenderEnd() is for render startup and shutdown. Nested render begin calls are not allowed; PRManRenderEnd() must be called before starting another render.

Deprecated APIs

The following interfaces should be considered deprecated, and will be removed in a future release:

...