#include <camera.h>
Public Member Functions | |
Camera (const Transform &w2cstart, const Transform &w2cend, float hither, float yon, float sopen, float sclose, int sdist, Film *film) | |
virtual | ~Camera () |
virtual float | GenerateRay (const Sample &sample, Ray *ray) const =0 |
virtual bool | Sample_W (const TsPack *tspack, const Scene *scene, float u1, float u2, float u3, BSDF **bsdf, float *pdf, SWCSpectrum *We) const |
virtual bool | Sample_W (const TsPack *tspack, const Scene *scene, const Point &p, const Normal &n, float u1, float u2, float u3, BSDF **bsdf, float *pdf, float *pdfDirect, VisibilityTester *visibility, SWCSpectrum *We) const |
virtual bool | GetSamplePosition (const Point &p, const Vector &wi, float distance, float *x, float *y) const |
virtual void | ClampRay (Ray &ray) const |
virtual bool | IsDelta () const |
virtual bool | IsLensBased () const |
virtual void | AutoFocus (Scene *scene) |
virtual BBox | Bounds () const |
float | GetTime (float u1) const |
virtual void | SampleMotion (float time) |
virtual Camera * | Clone () const =0 |
Public Attributes | |
Film * | film |
Protected Attributes | |
Transform | WorldToCamera |
Transform | CameraToWorld |
MotionSystem | CameraMotion |
float | ClipHither |
float | ClipYon |
float | ShutterOpen |
float | ShutterClose |
int | ShutterDistribution |
bool | warnOnce |
Definition at line 34 of file camera.h.
Camera::Camera | ( | const Transform & | w2cstart, | |
const Transform & | w2cend, | |||
float | hither, | |||
float | yon, | |||
float | sopen, | |||
float | sclose, | |||
int | sdist, | |||
Film * | film | |||
) |
Definition at line 36 of file camera.cpp.
References CameraToWorld, ClipHither, ClipYon, film, lux::Transform::GetInverse(), ShutterClose, ShutterDistribution, ShutterOpen, warnOnce, and WorldToCamera.
Camera::~Camera | ( | ) | [virtual] |
Definition at line 33 of file camera.cpp.
References film.
virtual void lux::Camera::AutoFocus | ( | Scene * | scene | ) | [inline, virtual] |
Reimplemented in lux::OrthoCamera, and lux::PerspectiveCamera.
Definition at line 57 of file camera.h.
Referenced by lux::Scene::Render().
virtual BBox lux::Camera::Bounds | ( | ) | const [inline, virtual] |
Reimplemented in lux::EnvironmentCamera, lux::OrthoCamera, and lux::PerspectiveCamera.
Definition at line 58 of file camera.h.
Referenced by lux::Scene::Scene().
virtual void lux::Camera::ClampRay | ( | Ray & | ray | ) | const [inline, virtual] |
Reimplemented in lux::EnvironmentCamera, lux::OrthoCamera, and lux::PerspectiveCamera.
Definition at line 54 of file camera.h.
Referenced by generateEyePath().
virtual Camera* lux::Camera::Clone | ( | ) | const [pure virtual] |
Implemented in lux::EnvironmentCamera, lux::OrthoCamera, lux::PerspectiveCamera, and lux::RealisticCamera.
Referenced by lux::RenderThread::render().
virtual bool lux::Camera::GetSamplePosition | ( | const Point & | p, | |
const Vector & | wi, | |||
float | distance, | |||
float * | x, | |||
float * | y | |||
) | const [inline, virtual] |
Reimplemented in lux::EnvironmentCamera, lux::OrthoCamera, and lux::PerspectiveCamera.
Definition at line 53 of file camera.h.
Referenced by getDirectLight(), and lux::BidirIntegrator::Li().
float Camera::GetTime | ( | float | u1 | ) | const |
Definition at line 62 of file camera.cpp.
References Lerp(), ShutterClose, ShutterDistribution, and ShutterOpen.
Referenced by lux::RealisticCamera::GenerateRay(), lux::PerspectiveCamera::GenerateRay(), lux::OrthoCamera::GenerateRay(), lux::EnvironmentCamera::GenerateRay(), and lux::RenderThread::render().
bool Camera::IsDelta | ( | ) | const [virtual] |
Reimplemented in lux::EnvironmentCamera, lux::OrthoCamera, and lux::PerspectiveCamera.
Definition at line 51 of file camera.cpp.
References LUX_BUG, LUX_SEVERE, and luxError.
virtual bool lux::Camera::IsLensBased | ( | ) | const [inline, virtual] |
Reimplemented in lux::EnvironmentCamera, and lux::OrthoCamera.
Definition at line 56 of file camera.h.
Referenced by generateEyePath(), and lux::BidirIntegrator::Li().
virtual bool lux::Camera::Sample_W | ( | const TsPack * | tspack, | |
const Scene * | scene, | |||
const Point & | p, | |||
const Normal & | n, | |||
float | u1, | |||
float | u2, | |||
float | u3, | |||
BSDF ** | bsdf, | |||
float * | pdf, | |||
float * | pdfDirect, | |||
VisibilityTester * | visibility, | |||
SWCSpectrum * | We | |||
) | const [inline, virtual] |
Reimplemented in lux::EnvironmentCamera, lux::OrthoCamera, and lux::PerspectiveCamera.
Definition at line 47 of file camera.h.
References LUX_BUG, LUX_SEVERE, luxError, and warnOnce.
virtual bool lux::Camera::Sample_W | ( | const TsPack * | tspack, | |
const Scene * | scene, | |||
float | u1, | |||
float | u2, | |||
float | u3, | |||
BSDF ** | bsdf, | |||
float * | pdf, | |||
SWCSpectrum * | We | |||
) | const [inline, virtual] |
Reimplemented in lux::EnvironmentCamera, lux::OrthoCamera, and lux::PerspectiveCamera.
Definition at line 41 of file camera.h.
References LUX_BUG, LUX_SEVERE, luxError, and warnOnce.
Referenced by lux::BidirIntegrator::Li().
void Camera::SampleMotion | ( | float | time | ) | [virtual] |
Reimplemented in lux::ProjectiveCamera.
Definition at line 55 of file camera.cpp.
References CameraMotion, CameraToWorld, lux::Transform::GetInverse(), lux::MotionSystem::isActive, lux::MotionSystem::Sample(), and WorldToCamera.
Referenced by lux::RenderThread::render().
MotionSystem lux::Camera::CameraMotion [protected] |
Definition at line 71 of file camera.h.
Referenced by lux::ProjectiveCamera::SampleMotion(), and SampleMotion().
Transform lux::Camera::CameraToWorld [protected] |
Definition at line 70 of file camera.h.
Referenced by lux::PerspectiveCamera::AutoFocus(), lux::OrthoCamera::AutoFocus(), lux::PerspectiveCamera::Bounds(), Camera(), lux::EnvironmentCamera::EnvironmentCamera(), lux::RealisticCamera::GenerateRay(), lux::PerspectiveCamera::GenerateRay(), lux::OrthoCamera::GenerateRay(), lux::EnvironmentCamera::GenerateRay(), lux::OrthoCamera::OrthoCamera(), lux::PerspectiveCamera::PerspectiveCamera(), lux::PerspectiveCamera::Sample_W(), lux::OrthoCamera::Sample_W(), lux::EnvironmentCamera::Sample_W(), and SampleMotion().
float lux::Camera::ClipHither [protected] |
Definition at line 72 of file camera.h.
Referenced by lux::PerspectiveCamera::AutoFocus(), lux::OrthoCamera::AutoFocus(), Camera(), lux::PerspectiveCamera::ClampRay(), lux::OrthoCamera::ClampRay(), lux::EnvironmentCamera::ClampRay(), lux::RealisticCamera::GenerateRay(), lux::PerspectiveCamera::GenerateRay(), lux::OrthoCamera::GenerateRay(), and lux::EnvironmentCamera::GenerateRay().
float lux::Camera::ClipYon [protected] |
Definition at line 72 of file camera.h.
Referenced by lux::PerspectiveCamera::AutoFocus(), lux::OrthoCamera::AutoFocus(), Camera(), lux::PerspectiveCamera::ClampRay(), lux::OrthoCamera::ClampRay(), lux::EnvironmentCamera::ClampRay(), lux::RealisticCamera::GenerateRay(), lux::PerspectiveCamera::GenerateRay(), lux::OrthoCamera::GenerateRay(), lux::EnvironmentCamera::GenerateRay(), lux::PerspectiveCamera::GetSamplePosition(), lux::OrthoCamera::GetSamplePosition(), and lux::EnvironmentCamera::GetSamplePosition().
Definition at line 67 of file camera.h.
Referenced by lux::PerspectiveCamera::AutoFocus(), lux::OrthoCamera::AutoFocus(), Camera(), lux::Scene::DisplayInterval(), lux::Scene::FilmXres(), lux::Scene::FilmYres(), lux::EnvironmentCamera::GenerateRay(), lux::ProjectiveCamera::GenerateSample(), lux::Scene::GetDefaultParameterValue(), lux::Scene::GetFramebuffer(), lux::Scene::getHistogramImage(), lux::Scene::GetParameterValue(), lux::EnvironmentCamera::GetSamplePosition(), lux::Scene::GetStringParameterValue(), lux::OrthoCamera::OrthoCamera(), lux::PathIntegrator::Preprocess(), lux::IGIIntegrator::Preprocess(), lux::ExPhotonIntegrator::Preprocess(), lux::DistributedPath::Preprocess(), lux::DirectLightingIntegrator::Preprocess(), lux::BidirIntegrator::Preprocess(), lux::ProjectiveCamera::ProjectiveCamera(), lux::RealisticCamera::RealisticCamera(), lux::Scene::Render(), lux::EnvironmentCamera::Sample_W(), lux::Scene::SaveFLM(), lux::Scene::Scene(), lux::Context::setHaltSamplePerPixel(), lux::Scene::SetParameterValue(), lux::Scene::Statistics(), lux::Scene::Statistics_SamplesPPx(), lux::Context::transmitFilm(), lux::RenderFarm::updateFilm(), lux::Scene::UpdateFramebuffer(), lux::Context::worldEnd(), and ~Camera().
float lux::Camera::ShutterClose [protected] |
int lux::Camera::ShutterDistribution [protected] |
float lux::Camera::ShutterOpen [protected] |
bool lux::Camera::warnOnce [mutable, protected] |
Definition at line 75 of file camera.h.
Referenced by Camera(), and Sample_W().
Transform lux::Camera::WorldToCamera [protected] |
Definition at line 70 of file camera.h.
Referenced by Camera(), lux::EnvironmentCamera::GetSamplePosition(), lux::OrthoCamera::OrthoCamera(), lux::PerspectiveCamera::PerspectiveCamera(), lux::ProjectiveCamera::ProjectiveCamera(), lux::ProjectiveCamera::SampleMotion(), and SampleMotion().