This is the documentation for Enlighten.
class Geo GeoEmbreeContext
class Geo::GeoEmbreeContext
└>Geo::IGeoRayTracingContext
└>Geo::IGeoReleasable
An IGeoRayTracingContext that implements the Intel Embree raytracer.
Note
Enlighten changes
We have changed the GeoEmbreecontext create and raytrace function implementation using Intel Embree 3.11.
We do not change the implementation of backfacing triangle and Level of Detail filtering.
Level of Detail filtering (required for baking) is only implemented in the Plücker Triangle4v Intersector, other paths are unavailable.
Prevent the TaskScheduler from being allocated at program initialisation, so we control when it uses memory.
Functions
Name | Description |
---|---|
Create(const IRtMesh *, bool) | Creates a GeoEmbreeContext. |
DistanceQuery(const Geo::v128 &, const Geo::v128 &, Geo::u32) | Ray trace a ray built from origin and direction. Returns length of ray. |
GetAPI() | Query which API the interface is using. |
GetAPI() | Query which API the interface is using. |
GetNumRaysTraced() | Total number of rays traced. |
GetNumRaysTraced() | Total number of rays traced. |
GetNumTriangles() | Ray trace a chunk of rays. Returns true on success. |
GetNumTriangles() | Ray trace a chunk of rays. Returns true on success. |
GetRayTraceSecs() | Total number of seconds used on raw ray tracing. |
GetRayTraceSecs() | Total number of seconds used on raw ray tracing. |
IsAnyHitTraversal() | Is the context using any hit traversal. |
IsAnyHitTraversal() | Is the context using any hit traversal. |
NonCopyable(NonCopyable &&) | Defaulted to allow move. |
operator=(NonCopyable &&) | Defaulted to allow move. |
ReentrantAndThreadSafe() | Is this object re-entrant and thread safe? |
ReentrantAndThreadSafe() | Is this object re-entrant and thread safe? |
Release() | Free this object that was created within the Enlighten libraries. |
Release() | Free this object that was created within the Enlighten libraries. |
TraceChunk(ClippedRayChunk *) | Ray trace a chunk of rays. |
TraceChunk(RayChunk *) | Ray trace a chunk of rays. |
TraceChunk(Geo::RayChunk *) | Ray trace a chunk of rays. |
TraceChunk(Geo::ClippedRayChunk *) | Ray trace a chunk of rays. |
TraceRay(const Geo::ClippedRay &, RayResult &, Geo::u32) | Ray trace a ray. Returns true on success. |
TraceRay(const Geo::ClippedRay &, RayResult &, Geo::u32) | Ray trace a ray. Returns true on success. |
TraceRay(const Geo::v128 &, const Geo::v128 &, Geo::u32) | Ray trace a ray built from origin and direction. Returns full ray info. |
static GeoEmbreeContext* Geo::GeoEmbreeContext::Create
public: GeoEmbreeContext * Create
(
const IRtMesh * world,
bool anyHitTraversal
)
Creates a GeoEmbreeContext.
float Geo::IGeoRayTracingContext::DistanceQuery
public: float DistanceQuery
(
const Geo::v128 & origin,
const Geo::v128 & direction,
Geo::u32 filter
) const
Ray trace a ray built from origin and direction. Returns length of ray.
virtual eRTAPI Geo::GeoEmbreeContext::GetAPI
public: virtual eRTAPI GetAPI() const
Query which API the interface is using.
virtual eRTAPI Geo::IGeoRayTracingContext::GetAPI
public: eRTAPI GetAPI() const
Query which API the interface is using.
virtual Geo::u64 Geo::GeoEmbreeContext::GetNumRaysTraced
public: virtual Geo::u64 GetNumRaysTraced() const
Total number of rays traced.
virtual Geo::u64 Geo::IGeoRayTracingContext::GetNumRaysTraced
public: Geo::u64 GetNumRaysTraced() const
Total number of rays traced.
virtual Geo::s32 Geo::GeoEmbreeContext::GetNumTriangles
public: virtual Geo::s32 GetNumTriangles() const
Ray trace a chunk of rays. Returns true on success.
virtual Geo::s32 Geo::IGeoRayTracingContext::GetNumTriangles
public: Geo::s32 GetNumTriangles() const
Ray trace a chunk of rays. Returns true on success.
virtual double Geo::GeoEmbreeContext::GetRayTraceSecs
public: virtual double GetRayTraceSecs() const
Total number of seconds used on raw ray tracing.
virtual double Geo::IGeoRayTracingContext::GetRayTraceSecs
public: double GetRayTraceSecs() const
Total number of seconds used on raw ray tracing.
virtual bool Geo::GeoEmbreeContext::IsAnyHitTraversal
public: virtual bool IsAnyHitTraversal() const
Is the context using any hit traversal.
virtual bool Geo::IGeoRayTracingContext::IsAnyHitTraversal
public: bool IsAnyHitTraversal() const
Is the context using any hit traversal.
Geo::NonCopyable::NonCopyable
public: NonCopyable
(
NonCopyable &&
)
Defaulted to allow move.
NonCopyable& Geo::NonCopyable::operator=
public: NonCopyable & operator=
(
NonCopyable &&
)
Defaulted to allow move.
virtual bool Geo::GeoEmbreeContext::ReentrantAndThreadSafe
public: virtual bool ReentrantAndThreadSafe() const
Is this object re-entrant and thread safe?
virtual bool Geo::IGeoRayTracingContext::ReentrantAndThreadSafe
public: bool ReentrantAndThreadSafe() const
Is this object re-entrant and thread safe?
virtual void Geo::GeoEmbreeContext::Release
public: virtual void Release()
Free this object that was created within the Enlighten libraries.
Expect this to behave in a similar way to calling 'delete(this)'
virtual void Geo::IGeoReleasable::Release
public: void Release()
Free this object that was created within the Enlighten libraries.
Expect this to behave in a similar way to calling 'delete(this)'
virtual bool Geo::GeoEmbreeContext::TraceChunk
public: virtual bool TraceChunk
(
ClippedRayChunk * chunk
) const
Ray trace a chunk of rays.
Returns true on success.
virtual bool Geo::GeoEmbreeContext::TraceChunk
public: virtual bool TraceChunk
(
RayChunk * chunk
) const
Ray trace a chunk of rays.
Returns true on success.
virtual bool Geo::IGeoRayTracingContext::TraceChunk
public: bool TraceChunk
(
Geo::RayChunk * chunk
) const
Ray trace a chunk of rays.
Returns true on success.
virtual bool Geo::IGeoRayTracingContext::TraceChunk
public: bool TraceChunk
(
Geo::ClippedRayChunk * chunk
) const
Ray trace a chunk of rays.
Returns true on success.
virtual bool Geo::GeoEmbreeContext::TraceRay
public: virtual bool TraceRay
(
const Geo::ClippedRay & ray,
RayResult & rayResult,
Geo::u32 filter
) const
Ray trace a ray. Returns true on success.
virtual bool Geo::IGeoRayTracingContext::TraceRay
public: bool TraceRay
(
const Geo::ClippedRay & ray,
RayResult & rayResult,
Geo::u32 filter
) const
Ray trace a ray. Returns true on success.
RayResult Geo::IGeoRayTracingContext::TraceRay
public: RayResult TraceRay
(
const Geo::v128 & origin,
const Geo::v128 & direction,
Geo::u32 filter
) const
Ray trace a ray built from origin and direction. Returns full ray info.