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.