Loading...
Searching...
No Matches
score::gfx::GaussianSplatRenderer Class Referencefinal

Renderer for GaussianSplatNode. More...

Inheritance diagram for score::gfx::GaussianSplatRenderer:
score::gfx::GenericNodeRenderer score::gfx::NodeRenderer

Detailed Description

Renderer for GaussianSplatNode.

Rendering pipeline:

  1. runInitialPasses: Compute depth keys and perform GPU radix sort
  2. runRenderPass: Draw sorted splats with alpha blending

Public Member Functions

 GaussianSplatRenderer (const GaussianSplatNode &node)
 
TextureRenderTarget renderTargetForInput (const Port &p) override
 
void init (RenderList &renderer, QRhiResourceUpdateBatch &res) override
 
void update (RenderList &renderer, QRhiResourceUpdateBatch &res, Edge *edge) override
 
void runInitialPasses (RenderList &, QRhiCommandBuffer &commands, QRhiResourceUpdateBatch *&res, Edge &edge) override
 
void runRenderPass (RenderList &, QRhiCommandBuffer &cb, Edge &edge) override
 
void release (RenderList &) override
 
- Public Member Functions inherited from score::gfx::GenericNodeRenderer
 GenericNodeRenderer (const NodeModel &node) noexcept
 
TextureRenderTarget renderTargetForInput (const Port &p) override
 
void defaultMeshInit (RenderList &renderer, const Mesh &mesh, QRhiResourceUpdateBatch &res)
 
void processUBOInit (RenderList &renderer)
 
void defaultPassesInit (RenderList &renderer, const Mesh &mesh)
 
void defaultPassesInit (RenderList &renderer, const Mesh &mesh, const QShader &v, const QShader &f, std::span< QRhiShaderResourceBinding > additionalBindings={})
 
void init (RenderList &renderer, QRhiResourceUpdateBatch &res) override
 
void defaultUBOUpdate (RenderList &renderer, QRhiResourceUpdateBatch &res)
 
void defaultMeshUpdate (RenderList &renderer, QRhiResourceUpdateBatch &res)
 
void update (RenderList &renderer, QRhiResourceUpdateBatch &res, Edge *edge) override
 
void defaultRelease (RenderList &)
 
void release (RenderList &) override
 
void defaultRenderPass (RenderList &, const Mesh &mesh, QRhiCommandBuffer &commands, Edge &edge)
 
void defaultRenderPass (RenderList &, const Mesh &mesh, QRhiCommandBuffer &commands, Edge &edge, PassMap &passes)
 
void runRenderPass (RenderList &, QRhiCommandBuffer &commands, Edge &edge) override
 
- Public Member Functions inherited from score::gfx::NodeRenderer
 NodeRenderer (const Node &node)
 
virtual BufferView bufferForInput (const Port &input)
 
virtual BufferView bufferForOutput (const Port &output)
 
virtual void inputAboutToFinish (RenderList &renderer, const Port &p, QRhiResourceUpdateBatch *&)
 
void checkForChanges ()
 
void process (int32_t port, const ossia::geometry_spec &v)
 
virtual void process (int32_t port, const ossia::transform3d &v)
 

Additional Inherited Members

- Public Attributes inherited from score::gfx::GenericNodeRenderer
ossia::small_vector< Sampler, 8 > m_samplers
 
QShader m_vertexS
 
QShader m_fragmentS
 
PassMap m_p
 
MeshBuffers m_meshbufs
 
QRhiBuffer * m_processUBO {}
 
DefaultShaderMaterial m_material
 
const score::gfx::Meshm_mesh {}
 
- Public Attributes inherited from score::gfx::NodeRenderer
const Nodenode
 
ossia::geometry_spec geometry
 The geometry to use.
 
int32_t nodeId {-1}
 
bool materialChanged {false}
 
bool geometryChanged {false}
 
bool renderTargetSpecsChanged {false}
 

Member Function Documentation

◆ init()

void score::gfx::GaussianSplatRenderer::init ( RenderList renderer,
QRhiResourceUpdateBatch &  res 
)
overridevirtual

◆ release()

void score::gfx::GaussianSplatRenderer::release ( RenderList r)
overridevirtual

◆ renderTargetForInput()

TextureRenderTarget score::gfx::GaussianSplatRenderer::renderTargetForInput ( const Port p)
overridevirtual

◆ runInitialPasses()

void score::gfx::GaussianSplatRenderer::runInitialPasses ( RenderList renderer,
QRhiCommandBuffer &  commands,
QRhiResourceUpdateBatch *&  res,
Edge edge 
)
overridevirtual

Reimplemented from score::gfx::NodeRenderer.

◆ runRenderPass()

void score::gfx::GaussianSplatRenderer::runRenderPass ( RenderList renderer,
QRhiCommandBuffer &  cb,
Edge edge 
)
overridevirtual

Reimplemented from score::gfx::NodeRenderer.

◆ update()

void score::gfx::GaussianSplatRenderer::update ( RenderList renderer,
QRhiResourceUpdateBatch &  res,
Edge edge 
)
overridevirtual

The documentation for this class was generated from the following files: