Loading...
Searching...
No Matches
score::gfx::GaussianSplatNode Struct Reference
Gaussian Splat rendering node. More...
Inheritance diagram for score::gfx::GaussianSplatNode:
Detailed Description
Gaussian Splat rendering node.
A full rendering node for 3D Gaussian Splatting. Uses instanced quad rendering with EWA (Elliptical Weighted Average) projection.
Pipeline (per frame):
- SH preprocess (compute): raw 256-byte splats → compact 64-byte splats Evaluates spherical harmonics, applies exp(scale), sigmoid(opacity)
- Depth key generation (compute): writes sortable uint keys
- Radix sort (compute): sorts indices back-to-front
- Render pass: instanced alpha-blended quads using sorted indices
Input ports:
- Raw Splat Buffer: GPU storage buffer, 256 bytes per splat (layout matches GaussianSplatData from Ply.hpp)
Output ports:
- Rendered image
Public Member Functions | |
| score::gfx::NodeRenderer * | createRenderer (RenderList &) const noexcept override |
| Create a renderer in a given context for this node. | |
| void | process (Message &&msg) override |
| Process a message from the execution engine. | |
Public Member Functions inherited from score::gfx::ProcessNode | |
| void | process (Message &&msg) override |
| Process a message from the execution engine. | |
| virtual void | process (Timings tk) |
| virtual void | process (int32_t port, const ossia::value &v) |
| virtual void | process (int32_t port, const ossia::audio_vector &v) |
| virtual void | process (int32_t port, const ossia::transform3d &v) |
| void | process (int32_t port, ossia::monostate) const noexcept |
| virtual void | process (int32_t port, const FunctionMessage &) |
| virtual void | process (int32_t port, const ossia::buffer_spec &) |
| Node () | |
| Node (const Node &)=delete | |
| Node (Node &&)=delete | |
| virtual void | process (Message &&msg) |
| Process a message from the execution engine. | |
| void | process (int32_t port, const ossia::render_target_spec &v) |
Public Member Functions inherited from score::gfx::Node | |
| Node (const Node &)=delete | |
| Node (Node &&)=delete | |
| Node & | operator= (const Node &)=delete |
| Node & | operator= (Node &&)=delete |
| virtual void | renderedNodesChanged () |
| Whenever render nodes are added / removed. | |
| virtual void | update () |
| void | materialChange () noexcept |
| Used to notify a material change from the model to the renderers. | |
| bool | hasMaterialChanged (int64_t &renderer) const noexcept |
| void | renderTargetChange () noexcept |
| Used to notify a render target (texture inlet) change from the model to the renderers. | |
| bool | hasRenderTargetChanged (int64_t &renderer) const noexcept |
| QSize | resolveRenderTargetSize (int32_t port, RenderList &renderer) const noexcept |
| RenderTargetSpecs | resolveRenderTargetSpecs (int32_t port, RenderList &renderer) const noexcept |
| void | process (int32_t port, const ossia::render_target_spec &v) |
Public Attributes | |
| int | splatCount {} |
| float | scaleFactor {1.0f} |
| bool | enableSorting {true} |
| uint32_t | shDegree {3} |
| ossia::vec3f | modelPosition {0.f, 0.f, 0.f} |
| ossia::vec3f | modelRotation {0.f, 0.f, 0.f} |
| ossia::vec3f | modelScale {1.f, 1.f, 1.f} |
| ossia::vec3f | position {-1.f, -1.f, -1.f} |
| ossia::vec3f | center {0.f, 0.f, 0.f} |
| float | fov {90.f} |
| float | near {0.001f} |
| float | far {10000.f} |
Public Attributes inherited from score::gfx::ProcessNode | |
| ProcessUBO | standardUBO {} |
| Every node matching with a score process will have such an UBO. | |
Public Attributes inherited from score::gfx::Node | |
| std::vector< Port * > | input |
| Input ports of that node. | |
| ossia::small_pod_vector< Port *, 1 > | output |
| Output ports of that node. | |
| ossia::flat_map< RenderList *, score::gfx::NodeRenderer * > | renderedNodes |
| Map associating each RenderList to a Renderer for this model. | |
| ossia::flat_map< int32_t, ossia::render_target_spec > | renderTargetSpecs |
| Render target info. | |
| std::atomic_int64_t | materialChanged {0} |
| std::atomic_int64_t | renderTargetSpecChanged {-1} |
| int32_t | nodeId = -1 |
| bool | requiresDepth {} |
| bool | addedToGraph {} |
Additional Inherited Members | |
Protected Attributes inherited from score::gfx::NodeModel | |
| std::unique_ptr< char[]> | m_materialData |
Member Function Documentation
◆ createRenderer()
|
overridevirtualnoexcept |
Create a renderer in a given context for this node.
Reimplemented from score::gfx::NodeModel.
◆ process()
|
overridevirtual |
Process a message from the execution engine.
Reimplemented from score::gfx::Node.
The documentation for this struct was generated from the following files:
- GaussianSplatNode.hpp
- GaussianSplatNode.cpp
Public Member Functions inherited from