RenderManAPI  24.0
RixProjectionContext Class Referenceabstract

The RixProjectionContext bundles together the main inputs and outputs from the RixProjection::Project() method and provides a few convenient utility methods to help it do its work. More...

#include <RixProjection.h>

Inherits RixContext.

Public Member Functions

virtual void TransformOrigins (RtUString const fromSpace, RtUString const toSpace)=0
 Utility methods to transform the rays in-place from one space to another. More...
 
virtual void TransformDirections (RtUString const fromSpace, RtUString const toSpace)=0
 
virtual RixInterfaceGetRixInterface (RixInterfaceId id) const =0
 Get the specified interface from this context. More...
 

Public Attributes

int numRays
 
RtPoint2 const * screen
 The screen samples represent samples in screen space with subpixel precision. More...
 
RtPoint2 const * lens
 The lens samples are the raw, canonical samples, uniformly distributed in the [0,1)^2 unit square. More...
 
RtPoint2 const * aperture
 
float * time
 Time samples are the raw, canonical samples, distributed in the [0,1) range. More...
 
RtRayGeometryrays
 Projection plugin will normally use the above data to fill the origin, direction, originRadius, and raySpread fields of the rays. More...
 
RtColorRGBtint
 An optional tint to apply to the beauty channel of the shaded rays before pixel filtering. More...
 

Protected Member Functions

 RixProjectionContext ()
 
 ~RixProjectionContext () override
 

Detailed Description

The RixProjectionContext bundles together the main inputs and outputs from the RixProjection::Project() method and provides a few convenient utility methods to help it do its work.

Constructor & Destructor Documentation

◆ RixProjectionContext()

RixProjectionContext::RixProjectionContext ( )
inlineprotected

◆ ~RixProjectionContext()

RixProjectionContext::~RixProjectionContext ( )
inlineoverrideprotected

Member Function Documentation

◆ GetRixInterface()

virtual RixInterface* RixContext::GetRixInterface ( RixInterfaceId  id) const
pure virtualinherited

Get the specified interface from this context.

The generic interface that is returned must be cast to the appropriate type before use.

Referenced by PxrGeoAOV::disableIntegratorAOVs(), RixIES::ReadIESProfile(), RixBXLookupLobeByName(), RixDebugBasis(), RixGetSceneColorSpace(), RixIsHoldout(), and RixIsMatte().

◆ TransformDirections()

virtual void RixProjectionContext::TransformDirections ( RtUString const  fromSpace,
RtUString const  toSpace 
)
pure virtual

◆ TransformOrigins()

virtual void RixProjectionContext::TransformOrigins ( RtUString const  fromSpace,
RtUString const  toSpace 
)
pure virtual

Utility methods to transform the rays in-place from one space to another.

Origins will be treated as points, and directions as vectors. The current ray time values (see shutter) will be respected for single segment motion blur.

DEPRECATED! If you need it, please use the world-to-camera transforms given via the the RixProjectionEnvironment instead.

Member Data Documentation

◆ aperture

RtPoint2 const* RixProjectionContext::aperture

◆ lens

RtPoint2 const* RixProjectionContext::lens

The lens samples are the raw, canonical samples, uniformly distributed in the [0,1)^2 unit square.

The aperture samples are the lens samples warped into the [-1,1]^2 square with a density distribution that produces the bokeh and anamorphic DoF specified by the "aperture" and "dofaspect" parameters from the RiHider line. These are for your convenience. You may ignore them if you wish.

◆ numRays

int RixProjectionContext::numRays

◆ rays

RtRayGeometry* RixProjectionContext::rays

Projection plugin will normally use the above data to fill the origin, direction, originRadius, and raySpread fields of the rays.

It may also be useful to override the mindist and maxdist for clipping effects. All of these are defined in terms of camera space with the camera centered at the origin and looking down the +Z axis.

NOTE: the directions should either be normalized or zero!!!

◆ screen

RtPoint2 const* RixProjectionContext::screen

The screen samples represent samples in screen space with subpixel precision.

For typical wide screen images, these will be in the [-aspect,aspect)x[-1,1) rectangle. The exact range depends on the combination of RiFormat, RiFrameAspectRatio, RiScreenWindow, and RiCropWindow settings.

◆ time

float* RixProjectionContext::time

Time samples are the raw, canonical samples, distributed in the [0,1) range.

The distribution density is computed according to the shaped "shutteropening" parameter on the RiCamera line. Time values are interpreted relative to shutter open at 0 and shutter close at 1. The projection may also alter the time values so long as they remain within [0,1).

◆ tint

RtColorRGB* RixProjectionContext::tint

An optional tint to apply to the beauty channel of the shaded rays before pixel filtering.

Defaults to white (1,1,1) to leave them unchanged. Plugins may change these to create vignetting, chromatic aberration, spectral bokeh, or other effects.


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