C++ / OpenCL Raytracer
|
#include <camera.h>
Public Member Functions | |
Camera (const SDim &dims, Vector3D lookFrom, Vector3D lookAt=Vector3D(0), Vector3D viewUp=Vector3D(0, 1, 0), double aperture=0.1, double Fov=40) | |
virtual Ray | GetRay (double s, double t) |
Static Public Member Functions | |
static Vector3D | RandomInUnitDisk () |
Public Attributes | |
Vector3D | m_vU |
Vector3D distance from camera origin to target. | |
Vector3D | m_vV |
Vector3D distance adjusted for viewup. | |
Vector3D | m_vW |
Vector3D cross product of distance and viewUp. | |
Vector3D | m_vLowerLeftCorner |
Vector3D lower left corner of grid. | |
Vector3D | m_vHorizontal |
Vector3D width of grid. | |
Vector3D | m_vVertical |
Vector3D height of grid. | |
Vector3D | m_vOrigin |
Vector3D center of grid. | |
Vector3D | m_vLookAt |
Vector3D center of grid. | |
Vector3D | m_vViewUp |
Vector3D center of grid. | |
double | m_dAperture |
Aperture of camera lens. | |
double | m_dFov |
Aperture of camera lens. | |
Perspective and ray generating functions.
|
inline |
Sets perspective for output image.
Camera location, subject, viewport, field of view, focus and aperture can be adjusted.
Example:
Camera(dimensions, Vector3D(5,0,0));
|
virtual |
For each pixel sample, create a ray using a given x and y value, mapped from the camera to the target.
Example: GetRay(x, y);
|
inlinestatic |
Returns a random vector with a dot product greater than 1.0.
Example:
RandomInUnitDisk();