#include <raydifferential.h>
Public Member Functions | |
DifferentialGeometry () | |
DifferentialGeometry (const Point &P, const Vector &DPDU, const Vector &DPDV, const Normal &DNDU, const Normal &DNDV, float uu, float vv, const void *pr) | |
DifferentialGeometry (const Point &P, const Normal &NN, const Vector &DPDU, const Vector &DPDV, const Normal &DNDU, const Normal &DNDV, float uu, float vv, const void *pr) | |
void | AdjustNormal (bool ro, bool swapsHandedness) |
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 void * | handle |
float | dudx |
float | dvdx |
float | dudy |
float | dvdy |
float | time |
union { | |
float triangleBaryCoords [3] | |
}; |
Definition at line 55 of file raydifferential.h.
lux::DifferentialGeometry::DifferentialGeometry | ( | ) | [inline] |
Definition at line 57 of file raydifferential.h.
DifferentialGeometry::DifferentialGeometry | ( | const Point & | P, | |
const Vector & | DPDU, | |||
const Vector & | DPDV, | |||
const Normal & | DNDU, | |||
const Normal & | DNDV, | |||
float | uu, | |||
float | vv, | |||
const void * | pr | |||
) |
Definition at line 29 of file raydifferential.cpp.
References lux::Cross(), dpdu, dpdv, dudx, dudy, dvdx, dvdy, handle, nn, lux::Normalize(), u, and v.
void lux::DifferentialGeometry::AdjustNormal | ( | bool | ro, | |
bool | swapsHandedness | |||
) | [inline] |
Definition at line 71 of file raydifferential.h.
References nn, lux::Normal::x, lux::Normal::y, and lux::Normal::z.
Referenced by lux::Shape::Intersect(), and lux::MeshQuadrilateral::Intersect().
void DifferentialGeometry::ComputeDifferentials | ( | const RayDifferential & | r | ) | const |
Definition at line 55 of file raydifferential.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().
union { ... } |
Definition at line 84 of file raydifferential.h.
Referenced by lux::Material::Bump(), lux::MotionPrimitive::GetShadingGeometry(), lux::InstancePrimitive::GetShadingGeometry(), lux::MotionPrimitive::Intersect(), lux::InstancePrimitive::Intersect(), lux::WhittedIntegrator::Li(), lux::PhotonIntegrator::Li(), lux::IrradianceCache::Li(), lux::IGIIntegrator::Li(), lux::ExPhotonIntegrator::Li(), lux::ExPhotonIntegrator::LiDirectLightingMode(), lux::DirectLightingIntegrator::LiInternal(), lux::MotionPrimitive::Sample(), and lux::InstancePrimitive::Sample().
Definition at line 84 of file raydifferential.h.
Referenced by lux::Material::Bump(), lux::MotionPrimitive::GetShadingGeometry(), lux::InstancePrimitive::GetShadingGeometry(), lux::MotionPrimitive::Intersect(), lux::InstancePrimitive::Intersect(), lux::WhittedIntegrator::Li(), lux::PhotonIntegrator::Li(), lux::IrradianceCache::Li(), lux::IGIIntegrator::Li(), lux::ExPhotonIntegrator::Li(), lux::ExPhotonIntegrator::LiDirectLightingMode(), lux::DirectLightingIntegrator::LiInternal(), lux::MotionPrimitive::Sample(), and lux::InstancePrimitive::Sample().
Definition at line 83 of file raydifferential.h.
Referenced by lux::BSDF::BSDF(), lux::Material::Bump(), ComputeDifferentials(), DifferentialGeometry(), lux::MotionPrimitive::GetShadingGeometry(), lux::InstancePrimitive::GetShadingGeometry(), lux::MeshQuadrilateral::GetShadingGeometry(), lux::MeshBaryTriangle::GetShadingGeometry(), lux::MotionPrimitive::Intersect(), lux::InstancePrimitive::Intersect(), lux::AreaLight::L(), lux::Shape::Sample(), lux::MotionPrimitive::Sample(), lux::InstancePrimitive::Sample(), lux::MeshWaldTriangle::Sample(), lux::MeshBaryTriangle::Sample(), lux::MeshQuadrilateral::Sample(), lux::SkyLight::Sample_L(), and lux::InfiniteAreaLight::Sample_L().
Definition at line 83 of file raydifferential.h.
Referenced by lux::Material::Bump(), ComputeDifferentials(), DifferentialGeometry(), lux::MotionPrimitive::GetShadingGeometry(), lux::InstancePrimitive::GetShadingGeometry(), lux::MeshQuadrilateral::GetShadingGeometry(), lux::MeshBaryTriangle::GetShadingGeometry(), lux::MotionPrimitive::Intersect(), lux::InstancePrimitive::Intersect(), lux::AreaLight::L(), lux::Shape::Sample(), lux::MotionPrimitive::Sample(), lux::InstancePrimitive::Sample(), lux::MeshWaldTriangle::Sample(), lux::MeshBaryTriangle::Sample(), lux::MeshQuadrilateral::Sample(), lux::SkyLight::Sample_L(), and lux::InfiniteAreaLight::Sample_L().
Vector lux::DifferentialGeometry::dpdx [mutable] |
Definition at line 85 of file raydifferential.h.
Referenced by ComputeDifferentials(), lux::Checkerboard3D< T >::Evaluate(), lux::Checkerboard2D< T >::Evaluate(), lux::MotionPrimitive::GetShadingGeometry(), lux::InstancePrimitive::GetShadingGeometry(), lux::MeshQuadrilateral::GetShadingGeometry(), lux::MeshBaryTriangle::GetShadingGeometry(), lux::WhittedIntegrator::Li(), lux::PhotonIntegrator::Li(), lux::IrradianceCache::Li(), lux::IGIIntegrator::Li(), lux::ExPhotonIntegrator::Li(), lux::ExPhotonIntegrator::LiDirectLightingMode(), lux::DirectLightingIntegrator::LiInternal(), lux::IdentityMapping3D::Map(), lux::PlanarMapping2D::Map(), lux::CylindricalMapping2D::Map(), and lux::SphericalMapping2D::Map().
Vector lux::DifferentialGeometry::dpdy [mutable] |
Definition at line 85 of file raydifferential.h.
Referenced by ComputeDifferentials(), lux::Checkerboard3D< T >::Evaluate(), lux::Checkerboard2D< T >::Evaluate(), lux::MotionPrimitive::GetShadingGeometry(), lux::InstancePrimitive::GetShadingGeometry(), lux::MeshQuadrilateral::GetShadingGeometry(), lux::MeshBaryTriangle::GetShadingGeometry(), lux::WhittedIntegrator::Li(), lux::PhotonIntegrator::Li(), lux::IrradianceCache::Li(), lux::IGIIntegrator::Li(), lux::ExPhotonIntegrator::Li(), lux::ExPhotonIntegrator::LiDirectLightingMode(), lux::DirectLightingIntegrator::LiInternal(), lux::IdentityMapping3D::Map(), lux::PlanarMapping2D::Map(), lux::CylindricalMapping2D::Map(), and lux::SphericalMapping2D::Map().
float lux::DifferentialGeometry::dudx [mutable] |
Definition at line 88 of file raydifferential.h.
Referenced by lux::Material::Bump(), ComputeDifferentials(), DifferentialGeometry(), lux::Checkerboard3D< T >::Evaluate(), lux::Checkerboard2D< T >::Evaluate(), lux::MeshQuadrilateral::GetShadingGeometry(), lux::MeshBaryTriangle::GetShadingGeometry(), lux::WhittedIntegrator::Li(), lux::PhotonIntegrator::Li(), lux::IrradianceCache::Li(), lux::IGIIntegrator::Li(), lux::ExPhotonIntegrator::Li(), lux::ExPhotonIntegrator::LiDirectLightingMode(), lux::DirectLightingIntegrator::LiInternal(), and lux::UVMapping2D::Map().
float lux::DifferentialGeometry::dudy [mutable] |
Definition at line 88 of file raydifferential.h.
Referenced by lux::Material::Bump(), ComputeDifferentials(), DifferentialGeometry(), lux::Checkerboard3D< T >::Evaluate(), lux::Checkerboard2D< T >::Evaluate(), lux::MeshQuadrilateral::GetShadingGeometry(), lux::MeshBaryTriangle::GetShadingGeometry(), lux::WhittedIntegrator::Li(), lux::PhotonIntegrator::Li(), lux::IrradianceCache::Li(), lux::IGIIntegrator::Li(), lux::ExPhotonIntegrator::Li(), lux::ExPhotonIntegrator::LiDirectLightingMode(), lux::DirectLightingIntegrator::LiInternal(), and lux::UVMapping2D::Map().
float lux::DifferentialGeometry::dvdx [mutable] |
Definition at line 88 of file raydifferential.h.
Referenced by lux::Material::Bump(), ComputeDifferentials(), DifferentialGeometry(), lux::Checkerboard3D< T >::Evaluate(), lux::Checkerboard2D< T >::Evaluate(), lux::MeshQuadrilateral::GetShadingGeometry(), lux::MeshBaryTriangle::GetShadingGeometry(), lux::WhittedIntegrator::Li(), lux::PhotonIntegrator::Li(), lux::IrradianceCache::Li(), lux::IGIIntegrator::Li(), lux::ExPhotonIntegrator::Li(), lux::ExPhotonIntegrator::LiDirectLightingMode(), lux::DirectLightingIntegrator::LiInternal(), and lux::UVMapping2D::Map().
float lux::DifferentialGeometry::dvdy [mutable] |
Definition at line 88 of file raydifferential.h.
Referenced by lux::Material::Bump(), ComputeDifferentials(), DifferentialGeometry(), lux::Checkerboard3D< T >::Evaluate(), lux::Checkerboard2D< T >::Evaluate(), lux::MeshQuadrilateral::GetShadingGeometry(), lux::MeshBaryTriangle::GetShadingGeometry(), lux::WhittedIntegrator::Li(), lux::PhotonIntegrator::Li(), lux::IrradianceCache::Li(), lux::IGIIntegrator::Li(), lux::ExPhotonIntegrator::Li(), lux::ExPhotonIntegrator::LiDirectLightingMode(), lux::DirectLightingIntegrator::LiInternal(), and lux::UVMapping2D::Map().
const void* lux::DifferentialGeometry::handle |
Definition at line 87 of file raydifferential.h.
Referenced by DifferentialGeometry(), lux::HarlequinTexture::Evaluate(), lux::MotionPrimitive::GetShadingGeometry(), lux::InstancePrimitive::GetShadingGeometry(), lux::MotionPrimitive::Intersect(), and lux::InstancePrimitive::Intersect().
Definition at line 82 of file raydifferential.h.
Referenced by AdjustNormal(), lux::BSDF::BSDF(), lux::Material::Bump(), lux::SunLight::checkPortals(), ComputeDifferentials(), DifferentialGeometry(), generateEyePath(), generateLightPath(), lux::BidirIntegrator::generatePath(), lux::RealisticCamera::GenerateRay(), lux::UberMaterial::GetBSDF(), lux::Translucent::GetBSDF(), lux::Skin::GetBSDF(), lux::ShinyMetal::GetBSDF(), lux::RoughGlass::GetBSDF(), lux::Primer::GetBSDF(), lux::Null::GetBSDF(), lux::MixMaterial::GetBSDF(), lux::Mirror::GetBSDF(), lux::Metal::GetBSDF(), lux::MatteTranslucent::GetBSDF(), lux::Matte::GetBSDF(), lux::Glossy::GetBSDF(), lux::Glass::GetBSDF(), lux::Felt::GetBSDF(), lux::Clay::GetBSDF(), lux::CarPaint::GetBSDF(), lux::BrushedMetal::GetBSDF(), lux::BluePaint::GetBSDF(), getDirectLight(), lux::MotionPrimitive::GetShadingGeometry(), lux::InstancePrimitive::GetShadingGeometry(), lux::MeshQuadrilateral::GetShadingGeometry(), lux::IrradianceCache::IndirectLo(), lux::MotionPrimitive::Intersect(), lux::InstancePrimitive::Intersect(), lux::AreaLight::L(), lux::LightPhotonMap::LDiffusePhoton(), lux::SunLight::Le(), lux::SkyLight::Le(), lux::InfiniteAreaLight::Le(), lux::WhittedIntegrator::Li(), lux::PhotonIntegrator::Li(), lux::PathIntegrator::Li(), lux::MLTPathIntegrator::Li(), lux::IrradianceCache::Li(), lux::IGIIntegrator::Li(), lux::ExPhotonIntegrator::Li(), lux::DebugIntegrator::Li(), lux::ExPhotonIntegrator::LiDirectLightingMode(), lux::DistributedPath::LiInternal(), lux::DirectLightingIntegrator::LiInternal(), lux::ExPhotonIntegrator::LiPathMode(), lux::PhotonIntegrator::LPhoton(), lux::LightPhotonMap::LPhoton(), lux::RadiancePhotonMap::LPhoton(), lux::ExPhotonIntegrator::LPhoton(), lux::LightPhotonMap::LPhotonDiffuseApprox(), lux::SkyLight::Pdf(), SkyPortalBxDF::Pdf(), lux::Primitive::Pdf(), lux::InfiniteAreaLight::Pdf(), InfinitePortalBxDF::Pdf(), lux::PhotonIntegrator::Preprocess(), lux::IGIIntegrator::Preprocess(), lux::ExPhotonIntegrator::Preprocess(), lux::Shape::Sample(), lux::MotionPrimitive::Sample(), lux::InstancePrimitive::Sample(), lux::MeshWaldTriangle::Sample(), lux::MeshBaryTriangle::Sample(), lux::MeshQuadrilateral::Sample(), SkyPortalBxDF::Sample_f(), InfinitePortalBxDF::Sample_f(), lux::SunLight::Sample_L(), lux::SkyLight::Sample_L(), lux::InfiniteAreaLight::Sample_L(), lux::AreaLight::Sample_L(), and lux::VisibilityTester::TestOcclusion().
Definition at line 81 of file raydifferential.h.
Referenced by lux::Material::Bump(), ComputeDifferentials(), lux::Checkerboard3D< T >::Evaluate(), lux::Checkerboard2D< T >::Evaluate(), generateEyePath(), generateLightPath(), lux::BidirIntegrator::generatePath(), getDirectLight(), lux::MotionPrimitive::GetShadingGeometry(), lux::InstancePrimitive::GetShadingGeometry(), lux::MeshQuadrilateral::GetShadingGeometry(), lux::MeshBaryTriangle::GetShadingGeometry(), lux::IrradianceCache::IndirectLo(), lux::MotionPrimitive::Intersect(), lux::InstancePrimitive::Intersect(), lux::AreaLight::L(), lux::LightPhotonMap::LDiffusePhoton(), lux::SunLight::Le(), lux::SkyLight::Le(), lux::InfiniteAreaLight::Le(), lux::WhittedIntegrator::Li(), lux::PhotonIntegrator::Li(), lux::PathIntegrator::Li(), lux::MLTPathIntegrator::Li(), lux::IrradianceCache::Li(), lux::IGIIntegrator::Li(), lux::ExPhotonIntegrator::Li(), lux::ExPhotonIntegrator::LiDirectLightingMode(), lux::DistributedPath::LiInternal(), lux::DirectLightingIntegrator::LiInternal(), lux::ExPhotonIntegrator::LiPathMode(), lux::PhotonIntegrator::LPhoton(), lux::LightPhotonMap::LPhoton(), lux::RadiancePhotonMap::LPhoton(), lux::ExPhotonIntegrator::LPhoton(), lux::LightPhotonMap::LPhotonDiffuseApprox(), lux::IdentityMapping3D::Map(), lux::PlanarMapping2D::Map(), lux::CylindricalMapping2D::Map(), lux::SphericalMapping2D::Map(), lux::SkyLight::Pdf(), SkyPortalBxDF::Pdf(), lux::InfiniteAreaLight::Pdf(), InfinitePortalBxDF::Pdf(), lux::PhotonIntegrator::Preprocess(), lux::IGIIntegrator::Preprocess(), lux::ExPhotonIntegrator::Preprocess(), lux::Shape::Sample(), lux::MotionPrimitive::Sample(), lux::InstancePrimitive::Sample(), lux::MeshWaldTriangle::Sample(), lux::MeshBaryTriangle::Sample(), lux::MeshQuadrilateral::Sample(), SkyPortalBxDF::Sample_f(), InfinitePortalBxDF::Sample_f(), lux::SunLight::Sample_L(), lux::SkyLight::Sample_L(), lux::InfiniteAreaLight::Sample_L(), and lux::AreaLight::Sample_L().
Definition at line 89 of file raydifferential.h.
Referenced by lux::MotionPrimitive::GetShadingGeometry(), lux::MotionPrimitive::Intersect(), lux::SkyLight::Le(), lux::InfiniteAreaLight::Le(), lux::MotionPrimitive::Sample(), SkyPortalBxDF::Sample_f(), InfinitePortalBxDF::Sample_f(), lux::SunLight::Sample_L(), lux::SkyLight::Sample_L(), lux::InfiniteAreaLight::Sample_L(), and lux::AreaLight::Sample_L().
Definition at line 94 of file raydifferential.h.
Referenced by lux::MotionPrimitive::GetShadingGeometry(), lux::InstancePrimitive::GetShadingGeometry(), lux::MeshBaryTriangle::GetShadingGeometry(), lux::MeshWaldTriangle::Intersect(), and lux::MeshBaryTriangle::Intersect().
Definition at line 86 of file raydifferential.h.
Referenced by lux::Material::Bump(), DifferentialGeometry(), lux::Checkerboard3D< T >::Evaluate(), lux::Checkerboard2D< T >::Evaluate(), lux::MotionPrimitive::GetShadingGeometry(), lux::InstancePrimitive::GetShadingGeometry(), lux::MeshQuadrilateral::GetShadingGeometry(), lux::MeshBaryTriangle::GetShadingGeometry(), lux::DebugIntegrator::Li(), lux::UVMapping2D::Map(), lux::Shape::Sample(), lux::MeshWaldTriangle::Sample(), lux::MeshBaryTriangle::Sample(), and lux::MeshQuadrilateral::Sample().
Definition at line 86 of file raydifferential.h.
Referenced by lux::Material::Bump(), DifferentialGeometry(), lux::Checkerboard3D< T >::Evaluate(), lux::Checkerboard2D< T >::Evaluate(), lux::MotionPrimitive::GetShadingGeometry(), lux::InstancePrimitive::GetShadingGeometry(), lux::MeshQuadrilateral::GetShadingGeometry(), lux::MeshBaryTriangle::GetShadingGeometry(), lux::DebugIntegrator::Li(), lux::UVMapping2D::Map(), lux::Shape::Sample(), lux::MeshWaldTriangle::Sample(), lux::MeshBaryTriangle::Sample(), and lux::MeshQuadrilateral::Sample().