Fermat
|
Classes | |
struct | VPL |
struct | Light |
struct | DiskLight |
struct | DirectionalLight |
struct | MeshLight |
struct | VTL |
Enumerations | |
enum | LightType { kPoint = 0, kDisk = 1, kRectangle = 2, kDirectional = 3, kMesh = 4, kVTL = 5 } |
Functions | |
FERMAT_HOST_DEVICE bool | Light::sample (const float *Z, uint32_t *prim_id, cugar::Vector2f *uv, VertexGeometry *geom, float *pdf, Edf *edf) const |
FERMAT_HOST_DEVICE bool | Light::sample (const cugar::Vector3f p, const float *Z, uint32_t *prim_id, cugar::Vector2f *uv, VertexGeometry *geom, float *pdf, Edf *edf) const |
FERMAT_HOST_DEVICE void | Light::intersect (const Ray ray, float2 *uv, float *t) const |
FERMAT_HOST_DEVICE void | Light::map (const uint32_t prim_id, const cugar::Vector2f &uv, VertexGeometry *geom, float *pdf, Edf *edf) const |
FERMAT_HOST_DEVICE void | Light::map (const uint32_t prim_id, const cugar::Vector2f &uv, const VertexGeometry &geom, float *pdf, Edf *edf) const |
|
inline |
intersect the given ray with the light source
ray | the input ray |
uv | the output uv coordinates on the sampled primitive |
t | the output ray intersection distance |
|
inline |
map a (prim,uv) pair to a surface element
prim_id | the input primitive index, in case the light is made of a mesh |
uv | the input uv coordinates on the sampled primitive |
geom | the output sample's differential geometry |
the output sample's area pdf | |
edf | the output sample's EDF |
|
inline |
map a (prim,uv) pair and a (precomputed) surface element to the corresponding edf/pdf
prim_id | the input primitive index, in case the light is made of a mesh |
uv | the input uv coordinates on the sampled primitive |
geom | the input sample's differential geometry |
the output sample's area pdf | |
edf | the output sample's EDF |
|
inline |
sample a point on the light source
Z | the input random numbers |
prim_id | the output primitive index, in case the light is made of a mesh |
uv | the output uv coordinates on the sampled primitive |
geom | the output sample's differential geometry |
the output sample's area pdf | |
edf | the output sample's EDF |
|
inline |
sample a point on the light source given a shading point (or receiver)
p | the input shading point |
Z | the input random numbers |
prim_id | the output primitive index, in case the light is made of a mesh |
uv | the output uv coordinates on the sampled primitive |
geom | the output sample's differential geometry |
the output sample's area pdf | |
edf | the output sample's EDF |