Loading...
Searching...
No Matches
score::gfx::GaussianSplatRenderer Class Referencefinal
Renderer for GaussianSplatNode. More...
Inheritance diagram for score::gfx::GaussianSplatRenderer:
Detailed Description
Renderer for GaussianSplatNode.
Rendering pipeline:
- runInitialPasses: Compute depth keys and perform GPU radix sort
- runRenderPass: Draw sorted splats with alpha blending
Public Member Functions | |
| GaussianSplatRenderer (const GaussianSplatNode &node) | |
| 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 | |
| score::gfx::Port * | imageOutlet () const noexcept |
| The node's first Image outlet, or nullptr. Not always output[0]. | |
| 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 | initState (RenderList &renderer, QRhiResourceUpdateBatch &res) override |
| void | releaseState (RenderList &renderer) override |
| void | addOutputPass (RenderList &renderer, Edge &edge, QRhiResourceUpdateBatch &res) override |
| Create a pass for a new output edge (pipeline, SRB, processUBO). | |
| void | removeOutputPass (RenderList &renderer, Edge &edge) override |
| bool | hasOutputPassForEdge (Edge &edge) const override |
| Check if this renderer already has an output pass for the given edge. | |
| 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 |
| void | updateInputTexture (const Port &input, QRhiTexture *tex, QRhiTexture *depthTex=nullptr) override |
Public Member Functions inherited from score::gfx::NodeRenderer | |
| NodeRenderer (const Node &node) | |
| virtual TextureRenderTarget | renderTargetForInput (const Port &input) |
| virtual BufferView | bufferForInput (const Port &input) |
| virtual BufferView | bufferForOutput (const Port &output) |
| virtual QRhiTexture * | textureForOutput (const Port &output) |
| virtual void | updateInputSamplerFilter (const Port &input, const RenderTargetSpecs &spec) |
| virtual void | inputAboutToFinish (RenderList &renderer, const Port &p, QRhiResourceUpdateBatch *&) |
| void | checkForChanges () |
| void | syncRenderTargetIndex () |
| void | process (int32_t port, const ossia::geometry_spec &v) |
| void | process (int32_t port, const ossia::scene_spec &v) |
| virtual void | process (int32_t port, const ossia::transform3d &v) |
| void | process (int32_t port, const ossia::geometry_spec &v, const void *source_key) |
| void | process (int32_t port, const ossia::scene_spec &v, const void *source_key) |
| const ossia::geometry_spec * | findGeometryByPort (int32_t port) const |
| template<typename F > | |
| void | forEachSceneOnPort (int32_t port, F &&fn) const |
| virtual void | addInputEdge (RenderList &renderer, Edge &edge, QRhiResourceUpdateBatch &res) |
| virtual void | removeInputEdge (RenderList &renderer, Edge &edge) |
| Notify the renderer that an input edge was disconnected. | |
| virtual void | seedInitialOutputs (RenderList &renderer) |
Additional Inherited Members | |
Public Types inherited from score::gfx::NodeRenderer | |
| using | PortSourceKey = std::pair< int32_t, const void * > |
| using | MergeCacheKey = std::pair< const ossia::scene_state *, int64_t > |
Public Attributes inherited from score::gfx::GenericNodeRenderer | |
| ossia::small_vector< Sampler, 8 > | m_samplers |
| QShader | m_vertexS |
| QShader | m_fragmentS |
| PassMap | m_p |
| ossia::small_vector< std::pair< QVector< quint32 >, QRhiGraphicsPipeline * >, 2 > | m_pipelineCache |
| MeshBuffers | m_meshbufs |
| QRhiBuffer * | m_processUBO {} |
| DefaultShaderMaterial | m_material |
| const score::gfx::Mesh * | m_mesh {} |
Public Attributes inherited from score::gfx::NodeRenderer | |
| const Node & | node |
| ossia::geometry_spec | geometry |
| The geometry to use. | |
| ossia::small_flat_map< PortSourceKey, ossia::geometry_spec, 4 > | m_portGeometries |
| ossia::scene_spec | scene |
| The scene to use (when receiving scene_spec data). | |
| ossia::small_flat_map< PortSourceKey, ossia::scene_spec, 4 > | m_portScenes |
| Per-(port, source) scene storage. See m_portGeometries comment. | |
| ossia::small_vector< MergeCacheKey, 4 > | m_mergeCacheInputs |
| ossia::scene_spec | m_mergeCacheOutput |
| ossia::small_flat_map< PortSourceKey, std::pair< ossia::geometry_spec, ossia::scene_spec >, 4 > | m_wrapCache |
| int32_t | nodeId {-1} |
| bool | materialChanged {false} |
| bool | geometryChanged {false} |
| bool | sceneChanged {false} |
| bool | renderTargetSpecsChanged {false} |
| bool | m_initialized {false} |
Member Function Documentation
◆ init()
|
overridevirtual |
Implements score::gfx::NodeRenderer.
◆ release()
|
overridevirtual |
Implements score::gfx::NodeRenderer.
◆ runInitialPasses()
|
overridevirtual |
Reimplemented from score::gfx::NodeRenderer.
◆ runRenderPass()
|
overridevirtual |
Reimplemented from score::gfx::NodeRenderer.
◆ update()
|
overridevirtual |
Implements score::gfx::NodeRenderer.
The documentation for this class was generated from the following files:
- GaussianSplatNode.hpp
- GaussianSplatNode.cpp
Public Member Functions inherited from