PhotoRealistic RenderMan 12.5

Release Notes


These release notes describe significant changes and enhancements to RenderMan® Pro Server for the 12.5 release over the 12.0 release.

Accelerated Ray Tracing

Ray tracing calculations have been dramatically accelerated, up to a factor of three. These speed-ups will be most apparent when computing effects that are ray-tracing intensive, like ambient occlusion and ray traced shadows. Ray tracing memory requirements have also been noticeably reduced. There are no changes to the shading language, so these gains do not require rewriting or even recompiling your shaders.   

Hierarchical Subdivision Surfaces

PRMan 12.5 extends subdivision surfaces to support hierarchical editing, which allows for exact control over components of the subdivision mesh at finer levels of subdivision. More information can be found in the Hierarchical Subdivision Surfaces Application Note.

Point Cloud API

An API to read and write point cloud files has been added. More information can be found in the Baking 3D Textures Application Note.

Visibility and Shading Attribute Simplification

The visibility attributes have been simplified and new attributes have been added to control the behavior of surface shading at ray tracing hit points.

Attribute "visibility" "int specular" [0|1]
Attribute "visibility" "int diffuse" [0|1]
Attribute "visibility" "int transmission" [0|1]
Attribute "visibility" "int camera" [0|1]

These attributes now simply control the visibility of the object to a certain ray type. "Specular" rays are those rays that have an angle less than the value specified by the "specularthreshold" option, and are shot by functions like trace() and gather(). "Diffuse" rays are those that are shot by functions like gather(), occlusion() and indirectdiffuse() and have an angle greater than the "specularthreshold". "Transmission" rays are those shot by the transmission() call. "Camera" visibility governs the visibility of the objects in the scene to REYES (independent of ray tracing).

Attribute "shade" "string specularhitmode" ["primitive"|"shader"]
Attribute "shade" "string diffusehitmode" ["primitive"|"shader"]
Attribute "shade" "string transmissionhitmode" ["primitive"|"shader"]
Attribute "shade" "string camerahitmode" ["primitive"|"shader"]

These new attributes control whether or not a shader is run at the hit point of a ray of the given type. The "primitive" hit mode for specular, diffuse, and transmission rays means that the shader is not run at the given hit point. Instead, the Color and Opacity attributes defined on the object are returned. The "shader" hit mode executes the surface shader of the hit object to determine the color and opacity to assign to the hit point. "camerahitmode" is unique, in that it is used to give a hint to the REYES shading system as to whether or not the shader must be run to determine the opacity of a given object. If it is set to "primitive" the shading system will obtain the opacity from the Opacity attribute, which can improve the efficiency of determining whether the object is occluded by other objects in the scene or not. "shader" mode causes the shading system to run the shader to determine the opacity of the object.

NOTE: These "visibility" and "shade" attributes must have inline type declarations, since the old "visibility" attributes are still supported for backwards compatibility and the inline declaration is what distinguishes the new attributes from the old.

Saved Attribute States

The RiResource call, in conjunction with the new RiResourceBegin and RiResourceEnd calls, now allows for the graphics attribute state to be saved and restored at any time in the RIB stream. Saved attribute states can also be used with the new hierarchical subdivision surface functionality. PRMan currently implements the "shading", "transform", and "all" subsets; these are further described in RI Interface Extensions.

Miscellaneous Changes and Bug Fixes
Ray Tracing
Texture Maps
Point Clouds and Brick Maps
Shading Language
RIB String "Variables"

Strings in RIB files may now contain "variables" which are expanded when the RIB is parsed by the renderer. These are references to Attributes and Options which are in scope at the time that the string is parsed. For example:
    Attribute "user" "string mytexsuffix" ["daytime"]
    Surface "mood_wall" "string texname" ["mood${user:mytexsuffix}.tex"]

The dollar-sign ($) in this example is the indication to the RIB parser that it should look for an expandable name. The following variable styles are allowed:
all attributes, then options, are searched for "name" ("$Frame" is the current frame)
attributes, then options, of the particular type are searched for "name" (e.g. "user:var")
the Attribute or Option qualifier specifies exactly which name to query (e.g. "Attribute:user:var")

Since the dollar-sign was not previously "reserved" for this use, it is possible that existing RIB files may have have strings containing it which should not be subjected to this kind of expansion. Therefore, this is an optional behavior which must be enabled by specifying the distinguished "name expansion" character in either rendermn.ini or as an Option at the top of a particular RIB file:
    rendermn.ini:     /prman/ribvarsubstchar $
    inline in RIB:     Option "ribparse" "string varsubst" ["$"]



PRMan 12.5.1 Changes
PRMan 12.5.2 Changes




Pixar Animation Studios

(510) 752-3000 (voice)   (510) 752-3151 (fax)
Copyright © Pixar. All rights reserved.
RenderMan® is a registered trademark of Pixar.