![]() |
|
A representation for cameras that pulls on camera parameters used by Riley cameras. More...
#include <camera.h>
Inheritance diagram for HdPrmanCamera:Classes | |
| struct | ShutterCurve |
| See GetShutterCurve() below for a description of what these values represent. More... | |
Public Member Functions | |
| HDPRMAN_API | HdPrmanCamera (SdfPath const &id) |
| HDPRMAN_API void | Sync (HdSceneDelegate *sceneDelegate, HdRenderParam *renderParam, HdDirtyBits *dirtyBits) override |
| Synchronizes state from the delegate to this object. | |
| HDPRMAN_API void | Finalize (HdRenderParam *renderParam) override |
| Finalizes object resources. | |
| HDPRMAN_API riley::CameraId | GetRileyCameraId () const |
| HDPRMAN_API RtUString | GetRileyCameraName () const |
| HDPRMAN_API void | UpdateRileyCameraForActive (HdPrman_RenderParam *param, const HdPrman_CameraContext::ActiveCameraOverlay &overlay) |
| Apply the active camera opinions overlay to this camera's riley camera. | |
| HDPRMAN_API void | UpdateRileyCameraForInactive (HdPrman_RenderParam *param) |
| Remove the active camera opinions overlay from this camera's riley camera. | |
| HDPRMAN_API void | RecommitRileyCameraForActive (HdPrman_RenderParam *param, const HdPrman_CameraContext::ActiveCameraOverlay &overlay) |
| Re-commit this camera's riley camera under the given overlay, and nothing else. | |
| HDPRMAN_API HdTimeSampleArray< GfMatrix4d, HDPRMAN_MAX_TIME_SAMPLES > const & | GetTimeSampleXforms () const |
| Returns the time sampled xforms that were queried during Sync. | |
| riley::ShadingNode | GetProjectionNode () const |
| float | GetLensDistortionK1 () const |
| float | GetLensDistortionK2 () const |
| const GfVec2f & | GetLensDistortionCenter () const |
| float | GetLensDistortionAnaSq () const |
| const GfVec2f & | GetLensDistortionAsym () const |
| float | GetLensDistortionScale () const |
| const ShutterCurve & | GetShutterCurve () const |
| Get the shutter curve of the camera. | |
| HDPRMAN_API void | SetRileyCameraParams (RtParamList &camParams, RtParamList &camParamsOverride, RtParamList &projParams) const |
| Sets the camera and projection shader parameters as expected by Riley from the USD physical camera params. | |
| float | GetApertureAngle () const |
| float | GetApertureDensity () const |
| int | GetApertureNSides () const |
| float | GetApertureRoundness () const |
| float | GetDofMult () const |
Public Member Functions inherited from HdCamera | |
| HD_API | HdCamera (SdfPath const &id) |
| HD_API HdDirtyBits | GetInitialDirtyBitsMask () const override |
| Returns the minimal set of dirty bits to place in the change tracker for use in the first sync of this prim. | |
| GfMatrix4d const & | GetTransform () const |
| Camera parameters accessor API. | |
| Projection | GetProjection () const |
| Returns whether camera is orthographic and perspective. | |
| float | GetHorizontalAperture () const |
| Returns horizontal aperture in world units. | |
| float | GetVerticalAperture () const |
| Returns vertical aperture in world units. | |
| float | GetHorizontalApertureOffset () const |
| Returns horizontal aperture offset in world units. | |
| float | GetVerticalApertureOffset () const |
| Returns vertical aperture offset in world units. | |
| float | GetFocalLength () const |
| Returns focal length in world units. | |
| GfRange1f const & | GetClippingRange () const |
| Returns near and far plane in world units. | |
| std::vector< GfVec4d > const & | GetClipPlanes () const |
| Returns any additional clipping planes defined in camera space. | |
| float | GetFStop () const |
| Returns fstop of camera. | |
| float | GetFocusDistance () const |
| Returns focus distance in world units. | |
| bool | GetFocusOn () const |
| float | GetDofAspect () const |
| int | GetSplitDiopterCount () const |
| float | GetSplitDiopterAngle () const |
| float | GetSplitDiopterOffset1 () const |
| float | GetSplitDiopterWidth1 () const |
| float | GetSplitDiopterFocusDistance1 () const |
| float | GetSplitDiopterOffset2 () const |
| float | GetSplitDiopterWidth2 () const |
| float | GetSplitDiopterFocusDistance2 () const |
| double | GetShutterOpen () const |
| double | GetShutterClose () const |
| float | GetExposure () const |
| Get the raw exposure exponent value. | |
| float | GetLinearExposureScale () const |
| Get the computed linear exposure scale from the underlying camera. | |
| TfToken | GetLensDistortionType () const |
| float | GetLensDistortionK1 () const |
| float | GetLensDistortionK2 () const |
| const GfVec2f & | GetLensDistortionCenter () const |
| float | GetLensDistortionAnaSq () const |
| const GfVec2f & | GetLensDistortionAsym () const |
| float | GetLensDistortionScale () const |
| float | GetLensDistortionIor () const |
| const CameraUtilConformWindowPolicy & | GetWindowPolicy () const |
| Returns the window policy of the camera. | |
| HD_API GfMatrix4d | ComputeProjectionMatrix () const |
| Convenience API for rasterizers. | |
Public Member Functions inherited from HdSprim | |
| HD_API | HdSprim (SdfPath const &id) |
| SdfPath const & | GetId () const |
| Returns the identifier by which this state is known. | |
Static Public Member Functions | |
| static HDPRMAN_API const RtUString & | ComputeProjectionShader (HdCamera::Projection projection, const RtUString &projectionOverride) |
| The riley projection shader name to use for the given projection. | |
| static const RtUString & | ComputeProjectionShader (HdCamera::Projection projection, const RtUString &&projectionOverride)=delete |
projectionOverride may be returned by reference, so binding it to a temporary would dangle. | |
| static HDPRMAN_API const RtUString & | ProjectionNodeName () |
| The riley projection shading-node handle name ("cam_projection"). | |
A representation for cameras that pulls on camera parameters used by Riley cameras.
Note: We do not create a Riley camera per HdCamera because in PRman 22, it'd require a render target to be created and bound (per camera), which would be prohibitively expensive in Prman 22.
| struct HdPrmanCamera::ShutterCurve |
See GetShutterCurve() below for a description of what these values represent.
| Class Members | ||
|---|---|---|
| optional< float > | shutterCloseTime | |
| optional< array< float, 8 > > | shutteropening | |
| optional< float > | shutterOpenTime | |
|
staticdelete |
projectionOverride may be returned by reference, so binding it to a temporary would dangle.
|
static |
The riley projection shader name to use for the given projection.
If projectionOverride is set to anything other than the default perspective, it wins; otherwise the projection decides orthographic vs perspective.
|
overridevirtual |
Finalizes object resources.
This function might not delete resources, but it should deal with resource ownership so that the sprim is deletable.
Reimplemented from HdSprim.
|
inline |
Get the shutter curve of the camera.
This curve determines the transparency of the shutter as a function of (normalized) time.
Note that the times returned here are relative to the shutter interval.
Some more explanation:
The values given here are passed to the Riley camera as options RixStr.k_shutterOpenTime, k_shutterCloseTime and k_shutteropening.
(where as the shutter interval is set through the global Riley options using Ri:Shutter).
RenderMan computes the shutter curve using constant pieces and cubic Bezier interpolation between the following points
(0, 0), (t1, y1), (t2,y2), (t3, 1), (t4, 1), (t5, y5), (t6, y6), (1, 0)
which are encoded as: t3 is the shutterOpenTime t4 is the shutterCloseTime [t1, y1, t2, y2, t5, y5, t6, y6] is the shutteropening array.
The Riley shutterOpenTime and shutterCloseTime represent the (riley shutter-interval relative) time the shutter is fully open and begins to close respectively.
|
inline |
|
static |
The riley projection shading-node handle name ("cam_projection").
| HDPRMAN_API void RecommitRileyCameraForActive | ( | HdPrman_RenderParam * | param, |
| const HdPrman_CameraContext::ActiveCameraOverlay & | overlay ) |
Re-commit this camera's riley camera under the given overlay, and nothing else.
Unlike UpdateRileyCameraForActive this is purely a republication of the camera's parameters: it leaves the clipping planes and the camera-name registry alone. It also assumes the riley camera already exists – callers must not use this to create one.
We need this to be able to reassert the active camera as the last modified camera in Riley, which we do right after SetOptions and right before Render.
| HDPRMAN_API void SetRileyCameraParams | ( | RtParamList & | camParams, |
| RtParamList & | camParamsOverride, | ||
| RtParamList & | projParams ) const |
Sets the camera and projection shader parameters as expected by Riley from the USD physical camera params.
|
overridevirtual |
Synchronizes state from the delegate to this object.
Reimplemented from HdCamera.
| HDPRMAN_API void UpdateRileyCameraForActive | ( | HdPrman_RenderParam * | param, |
| const HdPrman_CameraContext::ActiveCameraOverlay & | overlay ) |
Apply the active camera opinions overlay to this camera's riley camera.
The framing-conformed screen window, the projection override, depth-of- field disabling, and the clipping planes are all part of the active camera overlay.
| HDPRMAN_API void UpdateRileyCameraForInactive | ( | HdPrman_RenderParam * | param | ) |
Remove the active camera opinions overlay from this camera's riley camera.
This reverts the camera to its intrinsic (unconformed) window, removes the active-camera projection override and depth-of-field overrides, and deletes the camera's clipping planes.