OpenVDB: PerspectiveCamera Class Reference

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:

## 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::RGBA & | pixel (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
Film * | mFilm
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

  film | film (i.e. image) defining the pixel resolution
  rotation | rotation in degrees of the camera in world space (applied in x, y, z order)
  translation | translation of the camera in world-space units, applied after rotation
  focalLength | focal length of the camera in mm (the default of 50mm corresponds to Houdini's default camera)
  aperture | width in mm of the frame, i.e., the visible field (the default 41.2136 mm corresponds to Houdini's default camera)
  nearPlane | depth of the near clipping plane in world-space units
  farPlane | depth 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