#include <shape.h>
Public Member Functions | |
DifferentialGeometry () | |
DifferentialGeometry (const Point &P, const Vector &DPDU, const Vector &DPDV, const Vector &DNDU, const Vector &DNDV, float uu, float vv, const Shape *sh) | |
DifferentialGeometry (const Point &P, const Normal &NN, const Vector &DPDU, const Vector &DPDV, const Vector &DNDU, const Vector &DNDV, float uu, float vv, const Shape *sh) | |
void | ComputeDifferentials (const RayDifferential &r) const |
Public Attributes | |
Point | p |
Normal | nn |
Vector | dpdu |
Vector | dpdv |
Normal | dndu |
Normal | dndv |
Vector | dpdx |
Vector | dpdy |
float | u |
float | v |
const Shape * | shape |
float | dudx |
float | dvdx |
float | dudy |
float | dvdy |
Definition at line 34 of file shape.h.
lux::DifferentialGeometry::DifferentialGeometry | ( | ) | [inline] |
DifferentialGeometry::DifferentialGeometry | ( | const Point & | P, | |
const Vector & | DPDU, | |||
const Vector & | DPDV, | |||
const Vector & | DNDU, | |||
const Vector & | DNDV, | |||
float | uu, | |||
float | vv, | |||
const Shape * | sh | |||
) |
Definition at line 104 of file shape.cpp.
References lux::Cross(), dpdu, dpdv, dudx, dudy, dvdx, dvdy, nn, lux::Normalize(), lux::Shape::reverseOrientation, shape, lux::Shape::transformSwapsHandedness, u, and v.
void DifferentialGeometry::ComputeDifferentials | ( | const RayDifferential & | r | ) | const |
Definition at line 133 of file shape.cpp.
References lux::Ray::d, lux::Dot(), dpdu, dpdv, dpdx, dpdy, dudx, dudy, dvdx, dvdy, lux::RayDifferential::hasDifferentials, nn, lux::Ray::o, p, lux::RayDifferential::rx, lux::RayDifferential::ry, lux::SolveLinearSystem2x2(), lux::Normal::x, lux::Point::x, lux::Normal::y, lux::Point::y, lux::Normal::z, and lux::Point::z.
Referenced by lux::Intersection::GetBSDF().
Definition at line 53 of file shape.h.
Referenced by lux::Material::Bump(), lux::InstancePrimitive::Intersect(), lux::WhittedIntegrator::Li(), lux::PhotonIntegrator::Li(), lux::IrradianceCache::Li(), lux::IGIIntegrator::Li(), lux::ExPhotonIntegrator::LiInternal(), and lux::DirectLighting::LiInternal().
Definition at line 53 of file shape.h.
Referenced by lux::Material::Bump(), lux::InstancePrimitive::Intersect(), lux::WhittedIntegrator::Li(), lux::PhotonIntegrator::Li(), lux::IrradianceCache::Li(), lux::IGIIntegrator::Li(), lux::ExPhotonIntegrator::LiInternal(), and lux::DirectLighting::LiInternal().
Definition at line 52 of file shape.h.
Referenced by lux::BSDF::BSDF(), lux::Material::Bump(), ComputeDifferentials(), DifferentialGeometry(), lux::WaldTriangle::GetShadingGeometry(), lux::BaryTriangle::GetShadingGeometry(), and lux::InstancePrimitive::Intersect().
Definition at line 52 of file shape.h.
Referenced by lux::Material::Bump(), ComputeDifferentials(), DifferentialGeometry(), and lux::InstancePrimitive::Intersect().
Vector lux::DifferentialGeometry::dpdx [mutable] |
Definition at line 54 of file shape.h.
Referenced by ComputeDifferentials(), lux::Checkerboard3D< T >::Evaluate(), lux::Checkerboard2D< T >::Evaluate(), lux::WaldTriangle::GetShadingGeometry(), lux::BaryTriangle::GetShadingGeometry(), lux::WhittedIntegrator::Li(), lux::PhotonIntegrator::Li(), lux::IrradianceCache::Li(), lux::IGIIntegrator::Li(), lux::ExPhotonIntegrator::LiInternal(), lux::DirectLighting::LiInternal(), lux::IdentityMapping3D::Map(), lux::PlanarMapping2D::Map(), lux::CylindricalMapping2D::Map(), and lux::SphericalMapping2D::Map().
Vector lux::DifferentialGeometry::dpdy [mutable] |
Definition at line 54 of file shape.h.
Referenced by ComputeDifferentials(), lux::Checkerboard3D< T >::Evaluate(), lux::Checkerboard2D< T >::Evaluate(), lux::WaldTriangle::GetShadingGeometry(), lux::BaryTriangle::GetShadingGeometry(), lux::WhittedIntegrator::Li(), lux::PhotonIntegrator::Li(), lux::IrradianceCache::Li(), lux::IGIIntegrator::Li(), lux::ExPhotonIntegrator::LiInternal(), lux::DirectLighting::LiInternal(), lux::IdentityMapping3D::Map(), lux::PlanarMapping2D::Map(), lux::CylindricalMapping2D::Map(), and lux::SphericalMapping2D::Map().
float lux::DifferentialGeometry::dudx [mutable] |
Definition at line 57 of file shape.h.
Referenced by lux::Material::Bump(), ComputeDifferentials(), DifferentialGeometry(), lux::Checkerboard3D< T >::Evaluate(), lux::Checkerboard2D< T >::Evaluate(), lux::WaldTriangle::GetShadingGeometry(), lux::BaryTriangle::GetShadingGeometry(), lux::WhittedIntegrator::Li(), lux::PhotonIntegrator::Li(), lux::IrradianceCache::Li(), lux::IGIIntegrator::Li(), lux::ExPhotonIntegrator::LiInternal(), lux::DirectLighting::LiInternal(), and lux::UVMapping2D::Map().
float lux::DifferentialGeometry::dudy [mutable] |
Definition at line 57 of file shape.h.
Referenced by lux::Material::Bump(), ComputeDifferentials(), DifferentialGeometry(), lux::Checkerboard3D< T >::Evaluate(), lux::Checkerboard2D< T >::Evaluate(), lux::WaldTriangle::GetShadingGeometry(), lux::BaryTriangle::GetShadingGeometry(), lux::WhittedIntegrator::Li(), lux::PhotonIntegrator::Li(), lux::IrradianceCache::Li(), lux::IGIIntegrator::Li(), lux::ExPhotonIntegrator::LiInternal(), lux::DirectLighting::LiInternal(), and lux::UVMapping2D::Map().
float lux::DifferentialGeometry::dvdx [mutable] |
Definition at line 57 of file shape.h.
Referenced by lux::Material::Bump(), ComputeDifferentials(), DifferentialGeometry(), lux::Checkerboard3D< T >::Evaluate(), lux::Checkerboard2D< T >::Evaluate(), lux::WaldTriangle::GetShadingGeometry(), lux::BaryTriangle::GetShadingGeometry(), lux::WhittedIntegrator::Li(), lux::PhotonIntegrator::Li(), lux::IrradianceCache::Li(), lux::IGIIntegrator::Li(), lux::ExPhotonIntegrator::LiInternal(), lux::DirectLighting::LiInternal(), and lux::UVMapping2D::Map().
float lux::DifferentialGeometry::dvdy [mutable] |
Definition at line 57 of file shape.h.
Referenced by lux::Material::Bump(), ComputeDifferentials(), DifferentialGeometry(), lux::Checkerboard3D< T >::Evaluate(), lux::Checkerboard2D< T >::Evaluate(), lux::WaldTriangle::GetShadingGeometry(), lux::BaryTriangle::GetShadingGeometry(), lux::WhittedIntegrator::Li(), lux::PhotonIntegrator::Li(), lux::IrradianceCache::Li(), lux::IGIIntegrator::Li(), lux::ExPhotonIntegrator::LiInternal(), lux::DirectLighting::LiInternal(), and lux::UVMapping2D::Map().
Definition at line 51 of file shape.h.
Referenced by lux::BSDF::BSDF(), lux::Material::Bump(), ComputeDifferentials(), DifferentialGeometry(), generateLightPath(), lux::BidirIntegrator::generatePath(), lux::RealisticCamera::GenerateRay(), lux::UberMaterial::GetBSDF(), lux::Translucent::GetBSDF(), lux::Substrate::GetBSDF(), lux::Skin::GetBSDF(), lux::ShinyMetal::GetBSDF(), lux::RoughGlass::GetBSDF(), lux::Primer::GetBSDF(), lux::Plastic::GetBSDF(), lux::Null::GetBSDF(), lux::Mirror::GetBSDF(), lux::Metal::GetBSDF(), lux::MatteTranslucent::GetBSDF(), lux::Matte::GetBSDF(), lux::Glass::GetBSDF(), lux::Felt::GetBSDF(), lux::Clay::GetBSDF(), lux::CarPaint::GetBSDF(), lux::BrushedMetal::GetBSDF(), lux::BluePaint::GetBSDF(), lux::WaldTriangle::GetShadingGeometry(), lux::BaryTriangle::GetShadingGeometry(), lux::IrradianceCache::IndirectLo(), lux::InstancePrimitive::Intersect(), lux::BaryTriangle::Intersect(), lux::AreaLight::L(), lux::Intersection::Le(), lux::WhittedIntegrator::Li(), lux::PhotonIntegrator::Li(), lux::Path2Integrator::Li(), lux::PathIntegrator::Li(), lux::ParticleTracingIntegrator::Li(), lux::MLTPathIntegrator::Li(), lux::IrradianceCache::Li(), lux::IGIIntegrator::Li(), lux::DebugIntegrator::Li(), lux::BidirIntegrator::Li(), lux::ExPhotonIntegrator::LiInternal(), lux::DirectLighting::LiInternal(), lux::PhotonIntegrator::LPhoton(), lux::ExPhotonIntegrator::LPhoton(), lux::Shape::Pdf(), lux::PhotonIntegrator::Preprocess(), lux::IGIIntegrator::Preprocess(), lux::ExPhotonIntegrator::Preprocess(), and lux::VisibilityTester::TestOcclusion().
Definition at line 50 of file shape.h.
Referenced by lux::Material::Bump(), ComputeDifferentials(), lux::Checkerboard3D< T >::Evaluate(), lux::Checkerboard2D< T >::Evaluate(), generateLightPath(), lux::BidirIntegrator::generatePath(), lux::WaldTriangle::GetShadingGeometry(), lux::BaryTriangle::GetShadingGeometry(), lux::IrradianceCache::IndirectLo(), lux::InstancePrimitive::Intersect(), lux::PerspectiveCamera::IsVisibleFromEyes(), lux::AreaLight::L(), lux::Intersection::Le(), lux::WhittedIntegrator::Li(), lux::PhotonIntegrator::Li(), lux::Path2Integrator::Li(), lux::PathIntegrator::Li(), lux::ParticleTracingIntegrator::Li(), lux::MLTPathIntegrator::Li(), lux::IrradianceCache::Li(), lux::IGIIntegrator::Li(), lux::BidirIntegrator::Li(), lux::ExPhotonIntegrator::LiInternal(), lux::DirectLighting::LiInternal(), lux::PhotonIntegrator::LPhoton(), lux::ExPhotonIntegrator::LPhoton(), lux::IdentityMapping3D::Map(), lux::PlanarMapping2D::Map(), lux::CylindricalMapping2D::Map(), lux::SphericalMapping2D::Map(), lux::PhotonIntegrator::Preprocess(), and lux::ExPhotonIntegrator::Preprocess().
Definition at line 56 of file shape.h.
Referenced by lux::Material::Bump(), DifferentialGeometry(), lux::HarlequinTexture::Evaluate(), lux::WaldTriangle::GetShadingGeometry(), and lux::BaryTriangle::GetShadingGeometry().
Definition at line 55 of file shape.h.
Referenced by lux::Material::Bump(), DifferentialGeometry(), lux::Checkerboard3D< T >::Evaluate(), lux::Checkerboard2D< T >::Evaluate(), lux::WaldTriangle::GetShadingGeometry(), lux::BaryTriangle::GetShadingGeometry(), lux::DebugIntegrator::Li(), and lux::UVMapping2D::Map().
Definition at line 55 of file shape.h.
Referenced by lux::Material::Bump(), DifferentialGeometry(), lux::Checkerboard3D< T >::Evaluate(), lux::Checkerboard2D< T >::Evaluate(), lux::WaldTriangle::GetShadingGeometry(), lux::BaryTriangle::GetShadingGeometry(), lux::DebugIntegrator::Li(), and lux::UVMapping2D::Map().