RenderManAPI  24.0
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

◆ LightingModes

Indicates the lighting modes supported by the integrator.

Enumerator
k_UnidirectionalLighting 
k_BidirectionalLighting 

◆ SamplingModes

Indicates the sampling modes supported by the integrator.

Enumerator
k_Invalid 
k_Fixed 
k_Adaptive 
k_Incremental 
k_AllModes 

Constructor & Destructor Documentation

◆ RixIntegratorEnvironment()

RixIntegratorEnvironment::RixIntegratorEnvironment ( )
inline

Member Function Documentation

◆ GetDisplayChannel()

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

◆ _reserved

char RixIntegratorEnvironment::_reserved[15]

◆ cameraMediumIOR

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).

◆ cameraMediumPriority

int RixIntegratorEnvironment::cameraMediumPriority

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

◆ displays

RixDisplayChannel const* const RixIntegratorEnvironment::displays

Referenced by GetDisplayChannel().

◆ lightingRequirements

LightingModes RixIntegratorEnvironment::lightingRequirements

Deprecated.

◆ lightingServicesManagesParticipatingMedia

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.

◆ lobesWanted

RixBXLobeTraits RixIntegratorEnvironment::lobesWanted

Camera state.

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

◆ m_version

int RixIntegratorEnvironment::m_version

Interface version.

◆ manifoldWalkMaxSamples

int RixIntegratorEnvironment::manifoldWalkMaxSamples

◆ maxIntegrateSize

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().

◆ maxShadingCtxSize

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.

◆ numBootstrapIncrements

int RixIntegratorEnvironment::numBootstrapIncrements

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

◆ numDisplays

int const RixIntegratorEnvironment::numDisplays

Display state (unmutable).

Referenced by GetDisplayChannel().

◆ numIncrements

int const RixIntegratorEnvironment::numIncrements

Total number of increments. This is usually maxsamples.

◆ numRaysPerIncrement

int const RixIntegratorEnvironment::numRaysPerIncrement

(unmutable).

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

◆ shadowExcludeSubset

RtUString RixIntegratorEnvironment::shadowExcludeSubset

Additional shadow exclusion subset.

◆ supportedSamplingModes

SamplingModes RixIntegratorEnvironment::supportedSamplingModes

Deprecated.

◆ unused1

bool RixIntegratorEnvironment::unused1

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

◆ unused2

bool RixIntegratorEnvironment::unused2

◆ usesLightingServices

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.

◆ wantsEmptyIntegrate

bool RixIntegratorEnvironment::wantsEmptyIntegrate

Increment state.

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

◆ wantsIncrementBarrier

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.

◆ wantsTransmission

bool RixIntegratorEnvironment::wantsTransmission

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


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