|
| PLatLong01Sphere (real radius) |
|
void | calcHitDetail (const Ray &ray, HitProbe &probe, HitDetail *out_detail) const override |
| Calculates properties of a hit, such as coordinates and normal.
|
|
void | genPosSample (PrimitivePosSampleQuery &query, SampleFlow &sampleFlow, HitProbe &probe) const override |
| Generates a sample point on the surface of this primitive.
|
|
void | calcPosPdf (PrimitivePosPdfQuery &query) const override |
| Given a point on the surface of this primitive, calculates the PDF of sampling this point.
|
|
math::Vector2R | posToUV (const math::Vector3R &position) const |
| Maps a position on the sphere surface to UV coordinates (lat-long-01 format).
|
|
| PBasicSphere (real radius) |
|
bool | isIntersecting (const Ray &ray, HitProbe &probe) const override |
| Determine whether a given ray hits the object.
|
|
bool | reintersect (const Ray &ray, HitProbe &probe, const Ray &srcRay, HitProbe &srcProbe) const override |
| Intersect the intersected object again with a different ray.
|
|
bool | mayOverlapVolume (const math::AABB3D &volume) const override |
| Conservatively checks whether this object overlaps a volume.
|
|
math::AABB3D | calcAABB () const override |
| Calculates Axis-Aligned Bounding Box (AABB) of itself.
|
|
real | calcExtendedArea () const override |
| Calculates the area extended by this primitive. The term "extended" implies single-sided, e.g., a triangle's extended area is half the absolute value of the cross product of its two edge vectors. To treat it as double-sided, you need to multiply the result by 2 manually.
|
|
real | getRadius () const |
|
real | getRcpRadius () const |
|
virtual const PrimitiveMetadata * | getMetadata () const |
|
virtual | ~Intersectable ()=default |
|
virtual bool | isOccluding (const Ray &ray) const |
| Determines whether this object blocks the ray.
|
|