Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

class Geo::GeoEmbreeContext

    └>Geo::IGeoRayTracingContext
        └>Geo::IGeoReleasable

An IGeoRayTracingContext that implements the Intel Embree raytracer.

Note
titleNote

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

NameDescription
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.

SetMemoryLimit(MemoryLimitCallback)

Set a callback which can track and limit the total memory allocated by the process.

TraceChunk(ClippedRayChunk *)

Ray trace a chunk of rays.

TraceChunk(RayChunk *)

Ray trace a chunk of rays.

TraceChunk(Geo::ClippedRayChunk *)

Ray trace a chunk of rays.

TraceChunk(Geo::RayChunk *)

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.


Anchor
a6fb4273471110f2075153825df17e328
a6fb4273471110f2075153825df17e328

static GeoEmbreeContext* Geo::GeoEmbreeContext::Create

...

public: GeoEmbreeContext * Create
(
    const IRtMesh * world,
    bool anyHitTraversal
)

...

Creates a GeoEmbreeContext.


Anchor
abb8b492904447f7f23a97dd5393b098a
abb8b492904447f7f23a97dd5393b098a

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.


Anchor
a7fad785de845a1dff6c775a7f7aced67
a7fad785de845a1dff6c775a7f7aced67

virtual eRTAPI Geo::GeoEmbreeContext::GetAPI

...

public: virtual eRTAPI GetAPI() const

...

Query which API the interface is using.


Anchor
a399d6516d44d2316a8bfe02c763063a9
a399d6516d44d2316a8bfe02c763063a9

virtual eRTAPI Geo::IGeoRayTracingContext::GetAPI

...

public: eRTAPI GetAPI() const

...

Query which API the interface is using.


Anchor
aa31d57ed548ce961a01fcc3fc5f8b02d
aa31d57ed548ce961a01fcc3fc5f8b02d

virtual Geo::u64 Geo::GeoEmbreeContext::GetNumRaysTraced

...

public: virtual Geo::u64 GetNumRaysTraced() const

...

Total number of rays traced.


Anchor
a12fbdba4dc11626375f35b547d491f46
a12fbdba4dc11626375f35b547d491f46

virtual Geo::u64 Geo::IGeoRayTracingContext::GetNumRaysTraced

...

public: Geo::u64 GetNumRaysTraced() const

...

Total number of rays traced.


Anchor
aafb0cd5e2f677bc102b405253da7019a
aafb0cd5e2f677bc102b405253da7019a

virtual Geo::s32 Geo::GeoEmbreeContext::GetNumTriangles

...

public: virtual Geo::s32 GetNumTriangles() const

...

Ray trace a chunk of rays. Returns true on success.


Anchor
a1210b2a8611fc9933ba60582486c8c4b
a1210b2a8611fc9933ba60582486c8c4b

virtual Geo::s32 Geo::IGeoRayTracingContext::GetNumTriangles

...

public: Geo::s32 GetNumTriangles() const

...

Ray trace a chunk of rays. Returns true on success.


Anchor
a612d1e66a211201a87b3960f8377768c
a612d1e66a211201a87b3960f8377768c

virtual double Geo::GeoEmbreeContext::GetRayTraceSecs

...

public: virtual double GetRayTraceSecs() const

...

Total number of seconds used on raw ray tracing.


Anchor
ad5b2311eb7dde5f7aadaea0e721bb99d
ad5b2311eb7dde5f7aadaea0e721bb99d

virtual double Geo::IGeoRayTracingContext::GetRayTraceSecs

...

public: double GetRayTraceSecs() const

...

Total number of seconds used on raw ray tracing.


Anchor
a73714142f5f80c2819b1dbf88aced3a7
a73714142f5f80c2819b1dbf88aced3a7

virtual bool Geo::IGeoRayTracingContext::IsAnyHitTraversal

...

public: bool IsAnyHitTraversal() const

...

Is the context using any hit traversal.


Anchor
a27e51220858c7ee16b43e82104946ea1
a27e51220858c7ee16b43e82104946ea1

virtual bool Geo::GeoEmbreeContext::IsAnyHitTraversal

...

public: virtual bool IsAnyHitTraversal() const

...

Is the context using any hit traversal.


Anchor
adaed81b4c59f263dcb4e78c4126f4683
adaed81b4c59f263dcb4e78c4126f4683

Geo::NonCopyable::NonCopyable

...

public: NonCopyable
(
    NonCopyable &&
)

...

Defaulted to allow move.


Anchor
a6abc781e23b8f4864e0b868806e0acbf
a6abc781e23b8f4864e0b868806e0acbf

NonCopyable& Geo::NonCopyable::operator=

...

public: NonCopyable & operator=
(
    NonCopyable &&
)

...

Defaulted to allow move.


Anchor
a7b56b1b711533d9946941297a3819138
a7b56b1b711533d9946941297a3819138

virtual bool Geo::GeoEmbreeContext::ReentrantAndThreadSafe

...

public: virtual bool ReentrantAndThreadSafe() const

...

Is this object re-entrant and thread safe?


Anchor
a5257b38fd70acc61467cc125e54ffb8d
a5257b38fd70acc61467cc125e54ffb8d

virtual bool Geo::IGeoRayTracingContext::ReentrantAndThreadSafe

...

public: bool ReentrantAndThreadSafe() const

...

Is this object re-entrant and thread safe?


Anchor
a4ff572f987c129a80aa97ade35b101a1
a4ff572f987c129a80aa97ade35b101a1

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)'


Anchor
af6bdf30b42adde386c428e9dc2821eb9
af6bdf30b42adde386c428e9dc2821eb9

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)'


Anchor
ac28b2e96264ac922d0f7bb7d11729d2e
ac28b2e96264ac922d0f7bb7d11729d2e

static void Geo::GeoEmbreeContext::SetMemoryLimit

...

public: void SetMemoryLimit
(
    MemoryLimitCallback callback
)

...

Set a callback which can track and limit the total memory allocated by the process.


Anchor
aad8deaf21e095af62f843cc20a50fe40
aad8deaf21e095af62f843cc20a50fe40

virtual bool Geo::GeoEmbreeContext::TraceChunk

...

public: virtual bool TraceChunk
(
    ClippedRayChunk * chunk
) const

...

Ray trace a chunk of rays.

Returns true on success.


Anchor
a56be3d3fec22ec95d4c2e688f74bfb53
a56be3d3fec22ec95d4c2e688f74bfb53

virtual bool Geo::GeoEmbreeContext::TraceChunk

...

public: virtual bool TraceChunk
(
    RayChunk * chunk
) const

...

Ray trace a chunk of rays.

Returns true on success.


Anchor
abd178547c72324a0187017b1524990ac
abd178547c72324a0187017b1524990ac

virtual bool Geo::IGeoRayTracingContext::TraceChunk

...

public: bool TraceChunk
(
    Geo::ClippedRayChunk * chunk
) const

...

Ray trace a chunk of rays.

Returns true on success.


Anchor
ab7011035269396ff22148b409292233e
ab7011035269396ff22148b409292233e

virtual bool Geo::IGeoRayTracingContext::TraceChunk

...

public: bool TraceChunk
(
    Geo::RayChunk * chunk
) const

...

Ray trace a chunk of rays.

Returns true on success.


Anchor
a3d881ff2e21f156c575469b653102c3f
a3d881ff2e21f156c575469b653102c3f

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.


Anchor
a2d52e0990f7e81f15bce0fb3025fe2e1
a2d52e0990f7e81f15bce0fb3025fe2e1

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.


Anchor
a5bc618a72502d6402f507db4b9cb67b2
a5bc618a72502d6402f507db4b9cb67b2

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.