RenderMan  26.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RixIntegratorEnvironment Class Reference

This class allows integrators to instrospect the rendering environment. More...

#include <RixIntegrator.h>

Public Types

enum  SamplingModes {
  k_Invalid = 0, k_Fixed = 1, k_Adaptive = 2, k_Incremental = 4,
  k_AllModes = (k_Fixed | k_Adaptive | k_Incremental)
}
 Indicates the sampling modes supported by the integrator. More...
 
enum  LightingModes { k_UnidirectionalLighting = 0, k_BidirectionalLighting = 1 }
 Indicates the lighting modes supported by the integrator. More...
 

Public Member Functions

 RixIntegratorEnvironment ()
 
PRMAN_INLINE RixDisplayChannel
const * 
GetDisplayChannel (RtUString name) const
 Returns the first display channel with the corresponding name. More...
 

Public Attributes

int m_version
 Interface version. More...
 
int maxIntegrateSize
 Integration state. More...
 
int maxShadingCtxSize
 The maximum number of points that a shading context will encapsulate. More...
 
SamplingModes supportedSamplingModes
 Deprecated. More...
 
LightingModes lightingRequirements
 Deprecated. More...
 
int const numDisplays
 Display state (unmutable). More...
 
RixDisplayChannel const *const displays
 
bool wantsEmptyIntegrate
 Increment state. More...
 
bool wantsIncrementBarrier
 Expresses whether integrator requires all threads to synchronize on each rendering increment. More...
 
int const numRaysPerIncrement
 (unmutable). More...
 
int const numIncrements
 Total number of increments. This is usually maxsamples. More...
 
int numBootstrapIncrements
 Used to request iterations which do not contribute to the final result. More...
 
RixBXLobeTraits lobesWanted
 Camera state. More...
 
float cameraMediumIOR
 If the camera is inside a non-trivial participating medium, this is the IOR of the medium. More...
 
int cameraMediumPriority
 Priority of the medium surrounding the camera. Defaults to 0. More...
 
bool wantsTransmission
 Expresses whether integrator has a non trivial GetTransmission() method. More...
 
bool usesLightingServices
 Indicates if the integrator will make use of RixLightingServices. More...
 
bool unused1
 Max samples to be handled by manifold walking. Defaults to 0 (no manifold walk). More...
 
bool unused2
 
int manifoldWalkMaxSamples
 
RtUString shadowExcludeSubset
 Additional shadow exclusion subset. More...
 
bool lightingServicesManagesParticipatingMedia
 This requests lighting services to multiply the weighted transmission value on the current shading context into the evaluated material weights to apply participating media attenuation. More...
 
char _reserved [15]
 

Detailed Description

This class allows integrators to instrospect the rendering environment.

An object of this type is also provided to RixIntegrator::RenderBegin(), allowing the integrators to communicate some requirements back to the renderer.

Member Enumeration Documentation

Indicates the lighting modes supported by the integrator.

Enumerator
k_UnidirectionalLighting 
k_BidirectionalLighting 

Indicates the sampling modes supported by the integrator.

Enumerator
k_Invalid 
k_Fixed 
k_Adaptive 
k_Incremental 
k_AllModes 

Constructor & Destructor Documentation

RixIntegratorEnvironment::RixIntegratorEnvironment ( )
inline

Member Function Documentation

PRMAN_INLINE RixDisplayChannel const* RixIntegratorEnvironment::GetDisplayChannel ( RtUString  name) const
inline

Returns the first display channel with the corresponding name.

NOTE: This is probably not what you want to use for RixDisplayFilter plugins – see the comment on RixDisplayChannel above, regarding the multiplicity of some channel ids.

Parameters
[in]nameChannel name.
Returns
the first display channel with the provided name. Note: there could be other display channels using the same name.

References displays, and numDisplays.

Member Data Documentation

char RixIntegratorEnvironment::_reserved[15]
float RixIntegratorEnvironment::cameraMediumIOR

If the camera is inside a non-trivial participating medium, this is the IOR of the medium.

Defaults to 1.0f (air).

int RixIntegratorEnvironment::cameraMediumPriority

Priority of the medium surrounding the camera. Defaults to 0.

RixDisplayChannel const* const RixIntegratorEnvironment::displays

Referenced by GetDisplayChannel().

LightingModes RixIntegratorEnvironment::lightingRequirements

Deprecated.

bool RixIntegratorEnvironment::lightingServicesManagesParticipatingMedia

This requests lighting services to multiply the weighted transmission value on the current shading context into the evaluated material weights to apply participating media attenuation.

An integrator that sets this should avoid accumulating the weighted transmission value into the throughput.

RixBXLobeTraits RixIntegratorEnvironment::lobesWanted

Camera state.

Used to establish state for the first "wavefront". Other calls to GetNearestHit() are parameterized as integrator chooses.

int RixIntegratorEnvironment::m_version

Interface version.

int RixIntegratorEnvironment::manifoldWalkMaxSamples
int RixIntegratorEnvironment::maxIntegrateSize

Integration state.

The maximum number of rays used for a 'bucket'. This is the maximum number of rays given to RixIntegrator::IntegrateRays(), or the maximum total number of points encapsulated in the shading contexts given to RixIntegrator::Integrate().

int RixIntegratorEnvironment::maxShadingCtxSize

The maximum number of points that a shading context will encapsulate.

This affect all the shading contexts provided to the integrator by the renderer, including the ones returned by the various GetNearestHits() and GetTransmission() methods.

int RixIntegratorEnvironment::numBootstrapIncrements

Used to request iterations which do not contribute to the final result.

int const RixIntegratorEnvironment::numDisplays

Display state (unmutable).

Referenced by GetDisplayChannel().

int const RixIntegratorEnvironment::numIncrements

Total number of increments. This is usually maxsamples.

int const RixIntegratorEnvironment::numRaysPerIncrement

(unmutable).

Total number of rays used per increment. This depends on the render resolution.

RtUString RixIntegratorEnvironment::shadowExcludeSubset

Additional shadow exclusion subset.

SamplingModes RixIntegratorEnvironment::supportedSamplingModes

Deprecated.

bool RixIntegratorEnvironment::unused1

Max samples to be handled by manifold walking. Defaults to 0 (no manifold walk).

bool RixIntegratorEnvironment::unused2
bool RixIntegratorEnvironment::usesLightingServices

Indicates if the integrator will make use of RixLightingServices.

If they are not used, some initialization in the renderer may be skipped. Defaults to true.

bool RixIntegratorEnvironment::wantsEmptyIntegrate

Increment state.

Expresses whether integrator requires empty integrate request in adaptive rendering modes.

bool RixIntegratorEnvironment::wantsIncrementBarrier

Expresses whether integrator requires all threads to synchronize on each rendering increment.

This can impact performance; choose carefully whether this is really needed. See k_RixSCIncrementBarrier.

bool RixIntegratorEnvironment::wantsTransmission

Expresses whether integrator has a non trivial GetTransmission() method.


The documentation for this class was generated from the following file: