57 void genPosSampleWithObservationPos(
69 void genPosSampleWithoutObservationPos(
79 void calcPosPdfWithObservationPos(
93 bool latLong01ToSurface(
106 void latLong01ToSurface(
108 const std::array<real, 2>& uniformSample,
111 real* out_pdfA)
const;
Detailed information regarding a ray-primitive intersection.
Definition HitDetail.h:26
Lightweight ray intersection testing and reporting object. If an intersection is found,...
Definition HitProbe.h:27
Definition PBasicSphere.h:14
math::AABB3D calcAABB() const override
Calculates Axis-Aligned Bounding Box (AABB) of itself.
Definition PBasicSphere.cpp:47
real calcExtendedArea() const override
Calculates the area extended by this primitive. The term "extended" implies single-sided,...
Definition PBasicSphere.cpp:52
bool mayOverlapVolume(const math::AABB3D &volume) const override
Conservatively checks whether this object overlaps a volume.
Definition PBasicSphere.cpp:42
A sphere specifically built for environment lighting. This primitive is for environment map with lati...
Definition PLatLongEnvSphere.h:21
bool isIntersecting(const Ray &ray, HitProbe &probe) const override
Determine whether a given ray hits the object.
Definition PLatLongEnvSphere.cpp:46
bool isOccluding(const Ray &ray) const override
Determines whether this object blocks the ray.
Definition PLatLongEnvSphere.cpp:53
void calcHitDetail(const Ray &ray, HitProbe &probe, HitDetail *out_detail) const override
Calculates properties of a hit, such as coordinates and normal.
Definition PLatLongEnvSphere.cpp:60
PLatLongEnvSphere(real radius)
Definition PLatLongEnvSphere.cpp:22
bool mayOverlapVolume(const math::AABB3D &volume) const override
Conservatively checks whether this object overlaps a volume.
Definition PLatLongEnvSphere.h:118
void calcPosPdf(PrimitivePosPdfQuery &query) const override
Given a point on the surface of this primitive, calculates the PDF of sampling this point.
Definition PLatLongEnvSphere.cpp:142
real calcExtendedArea() const override
Calculates the area extended by this primitive. The term "extended" implies single-sided,...
Definition PLatLongEnvSphere.h:133
math::AABB3D calcAABB() const override
Calculates Axis-Aligned Bounding Box (AABB) of itself.
Definition PLatLongEnvSphere.h:127
void genPosSample(PrimitivePosSampleQuery &query, SampleFlow &sampleFlow, HitProbe &probe) const override
Generates a sample point on the surface of this primitive.
Definition PLatLongEnvSphere.cpp:116
Information for the probability of generating a specific sample point on a primitive.
Definition PrimitivePosPdfQuery.h:91
Information for generating a sample point on a primitive.
Definition PrimitivePosSampleQuery.h:132
Represents a ray in space.
Definition Ray.h:21
A sample with arbitrary dimensions with fine-grained sampling control.
Definition SampleFlow.h:19
TAABB3D getTranslated(const TVector3< T > &amount) const
Definition TAABB3D.ipp:262
TAABB3D & translate(const TVector3< T > &amount)
Definition TAABB3D.ipp:216
Derived negate() const
Applies a negative sign to the array's elements. These methods is only defined for signed element typ...
Definition TArithmeticArrayBase.ipp:520
The root for all renderer implementations.
Definition EEngineProject.h:6