OpenVDB 11.0.0
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PerspectiveCamera Class Reference

#include <openvdb/tools/RayTracer.h>

Inheritance diagram for PerspectiveCamera:
BaseCamera

Public Member Functions

 PerspectiveCamera (Film &film, const Vec3R &rotation=Vec3R(0.0), const Vec3R &translation=Vec3R(0.0), double focalLength=50.0, double aperture=41.2136, double nearPlane=1e-3, double farPlane=std::numeric_limits< double >::max())
 Constructor.
 
 ~PerspectiveCamera () override=default
 
math::Ray< double > getRay (size_t i, size_t j, double iOffset=0.5, double jOffset=0.5) const override
 Return a Ray in world space given the pixel indices and optional offsets in the range [0,1]. An offset of 0.5 corresponds to the center of the pixel.
 
Film::RGBApixel (size_t i, size_t j)
 
size_t width () const
 
size_t height () const
 
void lookAt (const Vec3R &xyz, const Vec3R &up=Vec3R(0.0, 1.0, 0.0))
 
Vec3R rasterToScreen (double i, double j, double z) const
 

Static Public Member Functions

static double focalLengthToFieldOfView (double length, double aperture)
 Return the horizontal field of view in degrees given a focal lenth in mm and the specified aperture in mm.
 
static double fieldOfViewToFocalLength (double fov, double aperture)
 Return the focal length in mm given a horizontal field of view in degrees and the specified aperture in mm.
 

Protected Member Functions

void initRay (double t0, double t1)
 

Protected Attributes

FilmmFilm
 
double mScaleWidth
 
double mScaleHeight
 
math::Ray< double > mRay
 
math::AffineMap mScreenToWorld
 

Constructor & Destructor Documentation

◆ PerspectiveCamera()

PerspectiveCamera ( Film & film,
const Vec3R & rotation = Vec3R(0.0),
const Vec3R & translation = Vec3R(0.0),
double focalLength = 50.0,
double aperture = 41.2136,
double nearPlane = 1e-3,
double farPlane = std::numeric_limits<double>::max() )
inline

Constructor.

Parameters
filmfilm (i.e. image) defining the pixel resolution
rotationrotation in degrees of the camera in world space (applied in x, y, z order)
translationtranslation of the camera in world-space units, applied after rotation
focalLengthfocal length of the camera in mm (the default of 50mm corresponds to Houdini's default camera)
aperturewidth in mm of the frame, i.e., the visible field (the default 41.2136 mm corresponds to Houdini's default camera)
nearPlanedepth of the near clipping plane in world-space units
farPlanedepth of the far clipping plane in world-space units

If no rotation or translation is provided, the camera is placed at (0,0,0) in world space and points in the direction of the negative z axis.

◆ ~PerspectiveCamera()

~PerspectiveCamera ( )
overridedefault

Member Function Documentation

◆ fieldOfViewToFocalLength()

static double fieldOfViewToFocalLength ( double fov,
double aperture )
inlinestatic

Return the focal length in mm given a horizontal field of view in degrees and the specified aperture in mm.

◆ focalLengthToFieldOfView()

static double focalLengthToFieldOfView ( double length,
double aperture )
inlinestatic

Return the horizontal field of view in degrees given a focal lenth in mm and the specified aperture in mm.

◆ getRay()

math::Ray< double > getRay ( size_t i,
size_t j,
double iOffset = 0.5,
double jOffset = 0.5 ) const
inlineoverridevirtual

Return a Ray in world space given the pixel indices and optional offsets in the range [0,1]. An offset of 0.5 corresponds to the center of the pixel.

Implements BaseCamera.

◆ height()

size_t height ( ) const
inlineinherited

◆ initRay()

void initRay ( double t0,
double t1 )
inlineprotectedinherited

◆ lookAt()

void lookAt ( const Vec3R & xyz,
const Vec3R & up = Vec3R(0.0, 1.0, 0.0) )
inlineinherited

Rotate the camera so its negative z-axis points at xyz and its y axis is in the plane of the xyz and up vectors. In other words the camera will look at xyz and use up as the horizontal direction.

◆ pixel()

Film::RGBA & pixel ( size_t i,
size_t j )
inlineinherited

◆ rasterToScreen()

Vec3R rasterToScreen ( double i,
double j,
double z ) const
inlineinherited

◆ width()

size_t width ( ) const
inlineinherited

Member Data Documentation

◆ mFilm

Film* mFilm
protectedinherited

◆ mRay

math::Ray<double> mRay
protectedinherited

◆ mScaleHeight

double mScaleHeight
protectedinherited

◆ mScaleWidth

double mScaleWidth
protectedinherited

◆ mScreenToWorld

math::AffineMap mScreenToWorld
protectedinherited