#include <openvdb/tools/RayTracer.h>
|
| | 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 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.
|
| |
|
| void | initRay (double t0, double t1) |
| |
◆ 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()
◆ 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()
◆ initRay()
| void initRay |
( |
double | t0, |
|
|
double | t1 ) |
|
inlineprotectedinherited |
◆ lookAt()
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()
◆ rasterToScreen()
| Vec3R rasterToScreen |
( |
double | i, |
|
|
double | j, |
|
|
double | z ) const |
|
inlineinherited |
◆ width()
◆ mFilm
◆ mRay
◆ mScaleHeight
◆ mScaleWidth
◆ mScreenToWorld