RenderManAPI
24.0
|
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 RixInterface * | GetRixInterface (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... | |
RtRayGeometry * | rays |
Projection plugin will normally use the above data to fill the origin, direction, originRadius, and raySpread fields of the rays. More... | |
RtColorRGB * | tint |
An optional tint to apply to the beauty channel of the shaded rays before pixel filtering. More... | |
Protected Member Functions | |
RixProjectionContext () | |
~RixProjectionContext () override | |
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.
|
inlineprotected |
|
inlineoverrideprotected |
|
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().
|
pure virtual |
|
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.
RtPoint2 const* RixProjectionContext::aperture |
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.
int RixProjectionContext::numRays |
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!!!
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.
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).
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.