RenderSpatial
The RenderSpatial class provides an interface for GPU-based Scene Graph traversal.
#include <render/TellusimRenderSpatial.h>
Constructors
RenderSpatial()
Methods
Spatial flags.
Flags getFlags() const
bool hasFlag(Flags flags) const
bool hasFlags(Flags flags) const
String getFlagsName() const
Spatial parameters.
uint32_t getMaxNodes() const
uint32_t getNumSteps() const
Spatial queries.
Query getQuery(QueryType type) const
static const char *getQueryName(QueryType type)
Dispatch frame intersections.
bool dispatchFrames(Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone, const FrameCallback *func = nullptr)
bool dispatchFrame(Compute &compute, RenderFrame &frame, Flags flags = FlagNone, const FrameCallback *func = nullptr)
| Type | Name | Description |
|---|---|---|
| uint32_t | num_frames | Number of frames. |
| RenderFrame | frames | Render frames (each frame must have a valid NodeCamera). |
| RenderSpatial::FrameCallback | func | Frame parameters callback for Fusion device. |
Dispatch objects intersections.
bool dispatchObjects(Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchObjects(Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
| Type | Name | Description |
|---|---|---|
| uint32_t | num_frames | Number of frames. |
| RenderFrame | frames | Render frames. |
Dispatch shadow map intersections.
bool dispatchShadowMap(Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchShadowMap(Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
| Type | Name | Description |
|---|---|---|
| uint32_t | num_frames | Number of frames. |
| RenderFrame | frames | Render frames. |
Dispatch tracing intersections.
bool dispatchTracing(Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchTracing(Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
| Type | Name | Description |
|---|---|---|
| uint32_t | num_frames | Number of frames. |
| RenderFrame | frames | Render frames. |
Types
using FrameCallback = Function<bool(Compute compute, uint32_t index)>
Enums
Flags
Spatial flags.
| Name | Value | Description |
|---|---|---|
| FlagNone | 0 | |
| FlagQuery | (1 << 0) | Time query profiler. |
| FlagStatistics | (1 << 1) | Frame statistics. |
| FlagTracing | (1 << 2) | Create tracing resources. |
| FlagShadowMap | (1 << 3) | Create shadow map resources. |
| FlagAntialiasing | (1 << 4) | Enable antialiasing. |
| FlagMotionBuffer | (1 << 5) | Enable motion buffer. |
| FlagRadixOrder | (1 << 6) | Radix geometry order. |
| DefaultFlags | FlagNone | |
| NumFlags | 7 |
QueryType
Query types.
| Name | Value | Description |
|---|---|---|
| QueryRenderFrame | 0 | Render frame time. |
| QueryNodeLight | 1 | Node light time. |
| QueryNodeObject | 2 | Node object time. |
| QueryNodeInstance | 3 | Node instance time. |
| QueryLightTree | 4 | Light spatial tree time. |
| QueryLightGrid | 5 | Light spatial grid time. |
| QueryShadowMap | 6 | Light shadow map time. |
| QueryTransparent | 7 | Transparent clear time. |
| QueryObjectOrder | 8 | Object array order time. |
| QueryObjectGeometry | 9 | Object geometry time. |
| QueryObjectNodeGroup | 10 | Object node group time. |
| QueryObjectNodeArray | 11 | Object node array time. |
| QueryObjectGeometryGroup | 12 | Object geometry group time. |
| QueryObjectGeometryArray | 13 | Object geometry array time. |
| QueryObjectGraphArray | 14 | Object graph array time. |
| QueryObjectGeometryOrder | 15 | Object geometry order time. |
| QueryShadowMapNodeObject | 16 | Shadow map node object time. |
| QueryShadowMapNodeInstance | 17 | Shadow map node instance time. |
| QueryShadowMapObjectGeometry | 18 | Shadow map object geometry time. |
| QueryTracingNodeObject | 19 | Tracing node object time. |
| QueryTracingNodeInstance | 20 | Tracing node instance time. |
| QueryTracingObjectGeometry | 21 | Tracing object geometry time. |
| NumQueries | 22 |