RenderRenderer
The RenderRenderer class provides an interface to low-level rendering methods. It supports parallel rendering operations for significantly improved performance in multi-frame rendering configurations.
#include <render/TellusimRenderRenderer.h>
Constructors
RenderRenderer()
Methods
Renderer flags.
Flags getFlags() const
bool hasFlag(Flags flags) const
bool hasFlags(Flags flags) const
String getFlagsName() const
Renderer multisample.
uint32_t getMultisample() const
bool hasMultisample() const
Renderer flipped flag.
bool isTargetFlipped() const
Renderer deferred formats.
Format getDepthFormat() const
Format getColorFormat() const
Format getNormalFormat() const
Format getDiffuseFormat() const
Format getMetallicFormat() const
Format getAuxiliaryFormat() const
Format getMotionFormat() const
Renderer composite formats.
Format getLuminanceFormat() const
Format getCompositeFormat() const
Format getHistoryFormat() const
Renderer occluder format.
Format getOccluderFormat() const
Renderer shadow map format.
Format getShadowMapFormat() const
Scene render interface.
SceneRender getSceneRender()
Renderer noise texture.
Texture getNoiseTexture() const
Renderer samplers.
Sampler getSampler(SamplerType type) const
Renderer queries.
Query getQuery(QueryType type) const
static const char *getQueryName(QueryType type)
Renderer statistics queries.
Query getStatisticsQuery(Pass pass) const
Dispatch frame commands generation.
bool dispatchFrames(Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchFrame(Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
Type | Name | Description |
---|---|---|
uint32_t | num_frames | Number of frames. |
RenderFrame | frames | Render frames. |
Draw deferred geometries.
bool drawDeferred(const Device &device, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool drawDeferred(const Device &device, RenderFrame &frame, Flags flags = FlagNone)
Type | Name | Description |
---|---|---|
uint32_t | num_frames | Number of frames. |
RenderFrame | frames | Render frames. |
Draw forward geometries.
bool drawForward(const Device &device, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool drawForward(const Device &device, RenderFrame &frame, Flags flags = FlagNone)
Type | Name | Description |
---|---|---|
uint32_t | num_frames | Number of frames. |
RenderFrame | frames | Render frames. |
Draw transparent geometries.
bool drawTransparent(const Device &device, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool drawTransparent(const Device &device, RenderFrame &frame, Flags flags = FlagNone)
Type | Name | Description |
---|---|---|
uint32_t | num_frames | Number of frames. |
RenderFrame | frames | Render frames. |
Raster deferred geometries.
bool rasterDeferred(const Device &device, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool rasterDeferred(const Device &device, RenderFrame &frame, Flags flags = FlagNone)
Type | Name | Description |
---|---|---|
uint32_t | num_frames | Number of frames. |
RenderFrame | frames | Render frames. |
Dispatch shadow map commands generation.
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. |
Draw shadow map geometries.
bool drawShadowMap(const Device &device, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool drawShadowMap(const Device &device, RenderFrame &frame, Flags flags = FlagNone)
Type | Name | Description |
---|---|---|
uint32_t | num_frames | Number of frames. |
RenderFrame | frames | Render frames. |
Raster shadow map geometries.
bool rasterShadowMap(const Device &device, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool rasterShadowMap(const Device &device, RenderFrame &frame, Flags flags = FlagNone)
Type | Name | Description |
---|---|---|
uint32_t | num_frames | Number of frames. |
RenderFrame | frames | Render frames. |
Dispatch tracing instances generation.
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. |
Build tracing instances.
bool buildTracing(const Device &device, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool buildTracing(const Device &device, RenderFrame &frame, Flags flags = FlagNone)
Type | Name | Description |
---|---|---|
uint32_t | num_frames | Number of frames. |
RenderFrame | frames | Render frames. |
Trace deferred geometries.
bool traceDeferred(const Device &device, RenderFrame *frames, uint32_t num_frames, uint32_t mask, Flags flags = FlagNone)
bool traceDeferred(const Device &device, RenderFrame &frame, uint32_t mask, Flags flags = FlagNone)
Type | Name | Description |
---|---|---|
uint32_t | num_frames | Number of frames. |
RenderFrame | frames | Render frames. |
uint32_t | mask | Geometry tracing mask. |
Dispatch screen creation.
bool dispatchScreen(const Device &device, Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchScreen(const Device &device, Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
Type | Name | Description |
---|---|---|
uint32_t | num_frames | Number of frames. |
RenderFrame | frames | Render frames. |
Dispatch ambient occlusion.
bool dispatchOcclusion(const Device &device, Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchOcclusion(const Device &device, Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
Type | Name | Description |
---|---|---|
uint32_t | num_frames | Number of frames. |
RenderFrame | frames | Render frames. |
Trace ambient occlusion.
bool traceOcclusion(const Device &device, Compute &compute, RenderFrame *frames, uint32_t num_frames, uint32_t mask, Flags flags = FlagNone)
bool traceOcclusion(const Device &device, Compute &compute, RenderFrame &frame, uint32_t mask, Flags flags = FlagNone)
Type | Name | Description |
---|---|---|
uint32_t | num_frames | Number of frames. |
RenderFrame | frames | Render frames. |
uint32_t | mask | Geometry tracing mask. |
Dispatch deferred lighting.
bool dispatchLight(const Device &device, Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchLight(const Device &device, Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
Type | Name | Description |
---|---|---|
uint32_t | num_frames | Number of frames. |
RenderFrame | frames | Render frames. |
Dispatch occluder creation.
bool dispatchOccluder(const Device &device, Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchOccluder(const Device &device, Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
Type | Name | Description |
---|---|---|
uint32_t | num_frames | Number of frames. |
RenderFrame | frames | Render frames. |
Dispatch screen feedback creation.
bool dispatchFeedback(const Device &device, Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchFeedback(const Device &device, Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
Type | Name | Description |
---|---|---|
uint32_t | num_frames | Number of frames. |
RenderFrame | frames | Render frames. |
Dispatch transparent blending.
bool dispatchTransparent(const Device &device, Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchTransparent(const Device &device, Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
Type | Name | Description |
---|---|---|
uint32_t | num_frames | Number of frames. |
RenderFrame | frames | Render frames. |
Dispatch luminance exposure.
bool dispatchLuminance(const Device &device, Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchLuminance(const Device &device, Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
Type | Name | Description |
---|---|---|
uint32_t | num_frames | Number of frames. |
RenderFrame | frames | Render frames. |
Dispatch composite creation.
bool dispatchComposite(const Device &device, Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchComposite(const Device &device, Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
Type | Name | Description |
---|---|---|
uint32_t | num_frames | Number of frames. |
RenderFrame | frames | Render frames. |
Enums
Flags
Renderer flags.
Name | Value | Description |
---|---|---|
FlagNone | 0 | |
FlagQuery | (1 << 0) | Time query profiler. |
FlagStatistics | (1 << 1) | Frame statistics query. |
FlagPrintf | (1 << 2) | Create printf resources. |
FlagRaster | (1 << 3) | Create raster resources. |
FlagMeshlet | (1 << 4) | Create meshlet resources. |
FlagTracing | (1 << 5) | Create tracing resources. |
FlagShadowMap | (1 << 6) | Create shadow map resources. |
FlagScreenShadows | (1 << 7) | Enable screen shadows. |
FlagTracingShadows | (1 << 8) | Enable tracing shadows (requires tracing). |
FlagFastOcclusion | (1 << 9) | Enable fast occlusion (requires occlusion flag). |
FlagScreenOcclusion | (1 << 10) | Enable screen occlusion (creates two metallic surfaces). |
FlagTracingOcclusion | (1 << 11) | Enable tracing occlusion (requires tracing and creates two metallic surfaces). |
FlagScreenReflection | (1 << 12) | Enable screen reflection (creates frame reflection texture). |
FlagTracingReflection | (1 << 13) | Enable tracing reflection (requires tracing). |
FlagAntialiasing | (1 << 14) | Enable antialiasing (requires spatial antialiasing). |
FlagMultisample2 | (1 << 15) | Create multisample 2x antialiasing resources. |
FlagMultisample4 | (1 << 16) | Create multisample 4x antialiasing resources. |
FlagMultisample8 | (1 << 17) | Create multisample 8x antialiasing resources. |
FlagStencilBuffer | (1 << 18) | Create stencil buffer (changes depth format). |
FlagAuxiliaryBuffer | (1 << 19) | Create auxiliary buffer (clearcoat, anisotropy, material address). |
FlagMotionBuffer | (1 << 20) | Create motion buffer (per-geometry motion texture). |
FlagTwoDepthTextures | (1 << 21) | Two depth textures (for rendering ping-ping). |
FlagTwoNormalTextures | (1 << 22) | Two normal surfaces (for compute ping-pong). |
FlagTwoDiffuseTextures | (1 << 23) | Two diffuse surfaces (for compute ping-pong). |
FlagTwoMetallicTextures | (1 << 24) | Two metallic surfaces (for compute ping-pong). |
FlagTwoAuxiliaryTextures | (1 << 25) | Two auxiliary surfaces (for compute ping-pong). |
FlagTwoMotionTextures | (1 << 26) | Two motion surfaces (for compute ping-pong). |
FlagSurfaceTextures | (1 << 27) | Create surface textures (for compute processing). |
FlagCompositeInterop | (1 << 28) | Enable composite surfaces interop. |
FlagCompositeTonemap | (1 << 29) | Perform composite surface tonemap. |
FlagCompositeTemporal | (1 << 30) | Create composite temporal surfaces. |
FlagMultisample | (FlagMultisample2 | FlagMultisample4 | FlagMultisample8) | |
DefaultFlags | FlagNone | |
NumFlags | 31 |
SamplerType
Sampler types.
Name | Value | Description |
---|---|---|
SamplerPointClamp | 0 | Point clamp sampler. |
SamplerPointRepeat | 1 | Point repeat sampler. |
SamplerPointCompare | 2 | Point compare sampler. |
SamplerBipointClamp | 3 | Bipoint clamp sampler. |
SamplerLinearClamp | 4 | Linear clamp sampler. |
SamplerLinearRepeat | 5 | Linear repeat sampler. |
SamplerLinearCompare | 6 | Linear compare sampler. |
SamplerBilinearClamp | 7 | Bilinear clamp sampler. |
SamplerBilinearRepeat | 8 | Bilinear repeat sampler. |
SamplerTrilinearClamp | 9 | Trilinear clamp sampler. |
SamplerTrilinearRepeat | 10 | Trilinear repeat sampler. |
NumSamplers | 11 |
QueryType
Query types.
Name | Value | Description |
---|---|---|
QueryFrameCount | 0 | Frame count time. |
QueryFrameBatch | 1 | Frame batch time. |
QueryFrameUpdate | 2 | Frame update time. |
QueryFrameShadowMap | 3 | Frame shadow map time. |
QueryDrawDeferred | 4 | Draw deferred pass time. |
QueryDrawForward | 5 | Draw forward pass time. |
QueryDrawTransparent | 6 | Draw transparent pass time. |
QueryDrawShadowMap | 7 | Draw shadow map pass time. |
QueryRasterFetch | 8 | Raster fetch time. |
QueryRasterCount | 9 | Raster count time. |
QueryRasterGroup | 10 | Raster group time. |
QueryRasterDeferred | 11 | Raster deferred time. |
QueryRasterComposite | 12 | Raster composite time. |
QueryRasterShadowMap | 13 | Raster shadow map time. |
QueryTracingInstance | 14 | Tracing instance time. |
QueryTracingBuild | 15 | Tracing build time. |
QueryTraceDeferred | 16 | Trace deferred time. |
QueryScreenFetch | 17 | Screen fetch time. |
QueryScreenOcclusion | 18 | Screen occlusion time. |
QueryTraceOcclusion | 19 | Trace occlusion time. |
QueryDeferredLight | 20 | Deferred light time. |
QueryOccluderFetch | 21 | Occluder fetch time. |
QueryScreenFeedback | 22 | Screen feedback time. |
QueryTransparentBlend | 23 | Transparent blend time. |
QueryLuminanceHistogram | 24 | Luminance histogram time. |
QueryCompositeFetch | 25 | Composite fetch time. |
NumQueries | 26 |