Tracing
The Tracing class provides an abstraction for managing acceleration structures used in ray tracing tasks. It allows the creation, management, and manipulation of different types of acceleration structures, such as instances, triangles, and bounds. It provides methods to set up and manage vertex buffers, index buffers, and instance buffers, enabling the setup of geometries and the specification of tracing parameters.
#include <platform/TellusimTracing.h>
Constructors
Tracing()
Methods
Tracing platform.
Platform getPlatform() const
const char *getPlatformName() const
Tracing device index.
uint32_t getIndex() const
Clear tracing.
void clear()
Check tracing.
bool isCreated() const
bool isBuilt() const
Tracing name.
void setName(const char *name)
String getName() const
Create tracing.
bool create(Type type, Flags flags = DefaultFlags)
Tracing type.
Type getType() const
static const char *getTypeName(Type type)
const char *getTypeName() const
bool isInstanceType() const
bool isTriangleType() const
bool isBoundType() const
bool isGeometryType() const
Tracing parameters.
void setParameters(const Tracing &tracing)
Tracing geometries.
uint32_t getNumGeometries() const
Instance buffer.
void setInstanceBuffer(uint32_t num_instances, Buffer &buffer, size_t offset = 0)
void setInstanceBuffer(Buffer &buffer, size_t offset = 0)
void setNumInstances(uint32_t num_instances)
uint32_t getNumInstances() const
Buffer getInstanceBuffer() const
size_t getInstanceOffset() const
Indirect buffer.
void setIndirectBuffer(Buffer &buffer, size_t offset = 0)
Buffer getIndirectBuffer() const
size_t getIndirectOffset() const
Vertex buffers.
uint32_t addVertexBuffer(uint32_t num_vertices, Format format, size_t stride, Buffer buffer = Buffer::null, size_t offset = 0)
void setVertexBuffer(uint32_t index, uint32_t num_vertices, Buffer &buffer, size_t offset = 0)
void setVertexBuffer(uint32_t index, Buffer &buffer, size_t offset = 0)
void setNumVertices(uint32_t index, uint32_t num_vertices)
uint32_t getNumVertices(uint32_t index) const
Format getVertexFormat(uint32_t index) const
uint32_t getVertexStride(uint32_t index) const
Buffer getVertexBuffer(uint32_t index) const
size_t getVertexOffset(uint32_t index) const
Index buffers.
uint32_t addIndexBuffer(uint32_t num_indices, Format format, Buffer buffer = Buffer::null, size_t offset = 0)
void setIndexBuffer(uint32_t index, uint32_t num_indices, Buffer &buffer, size_t offset = 0)
void setIndexBuffer(uint32_t index, Buffer &buffer, size_t offset = 0)
void setNumIndices(uint32_t index, uint32_t num_indices)
uint32_t getNumIndices(uint32_t index) const
Format getIndexFormat(uint32_t index) const
Buffer getIndexBuffer(uint32_t index) const
size_t getIndexOffset(uint32_t index) const
Bound buffers.
uint32_t addBoundBuffer(uint32_t num_bounds, size_t stride, Buffer buffer = Buffer::null, size_t offset = 0)
void setBoundBuffer(uint32_t index, uint32_t num_bounds, Buffer &buffer, size_t offset = 0)
void setBoundBuffer(uint32_t index, Buffer &buffer, size_t offset = 0)
void setNumBounds(uint32_t index, uint32_t num_bounds)
uint32_t getNumBounds(uint32_t index) const
uint32_t getBoundStride(uint32_t index) const
Buffer getBoundBuffer(uint32_t index) const
size_t getBoundOffset(uint32_t index) const
Tracing description.
String getDescription() const
Tracing address.
uint64_t getTracingAddress() const
Scratch buffer size.
size_t getBuildSize() const
size_t getUpdateSize() const
Memory usage.
size_t getMemory() const
Enums
Type
Tracing types.
Name | Value |
---|---|
TypeUnknown | 0 |
TypeInstance | 1 |
TypeTriangle | 2 |
TypeBound | 3 |
NumTypes | 4 |
Flags
Tracing flags.
Name | Value | Description |
---|---|---|
FlagNone | 0 | |
FlagInfo | (1 << 0) | Get build info. |
FlagUpdate | (1 << 1) | Update tracing. |
FlagCompact | (1 << 2) | Compact tracing. |
FlagTransparent | (1 << 3) | Transparent tracing. |
FlagFastBuild | (1 << 4) | Fast build tracing. |
FlagFastTrace | (1 << 5) | Fast trace tracing. |
DefaultFlags | FlagNone | |
NumFlags | 6 |
Instance size.
Name | Value |
---|---|
InstanceSize | 64 |
Structs
Instance
Tracing instance.
Variables
Type | Name | Description |
---|---|---|
float32_t[12] | transform | Row-major transform. |
uint32_t | data | Intersection data. |
uint32_t | mask | Intersection mask. |
uint32_t | flags | Intersection flags. |
uint32_t | offset | Intersection offset. |
Tracing | tracing | Geometry tracing. |
BuildIndirect
Build indirect parameters.
Variables
Type | Name |
---|---|
uint32_t | num_primitives |
uint32_t | base_primitive |
uint32_t | base_vertex |
uint32_t | base_transform |