#include <GaussianSplatRenderer.h>
|
| | GaussianSplatRenderer (filament::Engine &engine, FilamentResourceManager &resource_mgr) |
| |
| | ~GaussianSplatRenderer () |
| |
| void | RenderGeometryStage (FilamentView &view, const FilamentScene &scene) |
| |
| bool | RenderCompositeStage (FilamentView &view) |
| | Returns true if the composite pass ran and the backend reported success.
|
| |
| void | PruneOutputs (const std::unordered_set< const FilamentView * > &live_views) |
| |
| void | InvalidateOutputForView (FilamentView &view) |
| |
| void | RequestRedrawForView (const FilamentView &view) |
| |
| void | RequestCompositeForView (const FilamentView &view) |
| |
| bool | ConsumeOutputReadyRedrawRequest (const FilamentView &view) |
| |
| bool | ConsumeFollowupSceneRenderRequest (const FilamentView &view) |
| |
| bool | IsEnabled () const |
| |
| void | SetEnabled (bool enabled) |
| |
| bool | HasUsableBackend () const |
| | Returns whether the selected backend can render Gaussian splats.
|
| |
| bool | HasOutput (const FilamentView &view) const |
| |
| TextureHandle | GetColorTexture (const FilamentView &view) const |
| |
| TextureHandle | GetDepthTexture (const FilamentView &view) const |
| |
| RenderTargetHandle | GetColorReadbackRT (const FilamentView &view) const |
| |
| bool | ReadMergedDepthToUint16Cpu (const FilamentView &view, std::vector< std::uint16_t > &out, std::uint32_t width, std::uint32_t height) |
| |
| bool | ReadCompositeDepthToFloatCpu (const FilamentView &view, std::vector< float > &out, std::uint32_t width, std::uint32_t height) |
| |
| bool | ReadColorToRGBA16FCpu (const FilamentView &view, std::vector< std::uint16_t > &out) |
| |
| void | RequestDepthReadbackForView (const FilamentView &view, bool wanted=true) |
| |
| const ViewRenderData * | GetViewRenderData (const FilamentView &view) const |
| |
| const RenderConfig & | GetRenderConfig () const |
| |
| void | SetRenderConfig (const RenderConfig &config) |
| |
| const char * | GetBackendName () const |
| |
Manages per-view GPU output targets, backend lifetime, and frame orchestration for the Gaussian splat compute pipeline. One instance lives inside FilamentRenderer and FilamentRenderToBuffer.
◆ GaussianSplatRenderer()
| open3d::visualization::rendering::GaussianSplatRenderer::GaussianSplatRenderer |
( |
filament::Engine & |
engine, |
|
|
FilamentResourceManager & |
resource_mgr |
|
) |
| |
◆ ~GaussianSplatRenderer()
| open3d::visualization::rendering::GaussianSplatRenderer::~GaussianSplatRenderer |
( |
| ) |
|
◆ ConsumeFollowupSceneRenderRequest()
| bool open3d::visualization::rendering::GaussianSplatRenderer::ConsumeFollowupSceneRenderRequest |
( |
const FilamentView & |
view | ) |
|
Returns and clears a one-shot cached scene render request created when a Metal output target is recreated.
◆ ConsumeOutputReadyRedrawRequest()
| bool open3d::visualization::rendering::GaussianSplatRenderer::ConsumeOutputReadyRedrawRequest |
( |
const FilamentView & |
view | ) |
|
Returns and clears a request to redraw after a newly created output target has received its first successful composite.
◆ GetBackendName()
| const char * open3d::visualization::rendering::GaussianSplatRenderer::GetBackendName |
( |
| ) |
const |
◆ GetColorReadbackRT()
Returns a color-only render target suitable for readPixels readback. Only valid after RenderCompositeStage has been called for this view.
◆ GetColorTexture()
◆ GetDepthTexture()
◆ GetRenderConfig()
◆ GetViewRenderData()
◆ HasOutput()
| bool open3d::visualization::rendering::GaussianSplatRenderer::HasOutput |
( |
const FilamentView & |
view | ) |
const |
◆ HasUsableBackend()
| bool open3d::visualization::rendering::GaussianSplatRenderer::HasUsableBackend |
( |
| ) |
const |
Returns whether the selected backend can render Gaussian splats.
◆ InvalidateOutputForView()
| void open3d::visualization::rendering::GaussianSplatRenderer::InvalidateOutputForView |
( |
FilamentView & |
view | ) |
|
Destroys GS output targets for a specific view immediately, clearing the view's render target first. Must be called before any Filament texture used as an attachment is freed (e.g. on window resize before FilamentView::color_buffer_ is destroyed) to prevent a use-after-free crash in Filament's handle validation.
◆ IsEnabled()
| bool open3d::visualization::rendering::GaussianSplatRenderer::IsEnabled |
( |
| ) |
const |
◆ PruneOutputs()
| void open3d::visualization::rendering::GaussianSplatRenderer::PruneOutputs |
( |
const std::unordered_set< const FilamentView * > & |
live_views | ) |
|
◆ ReadColorToRGBA16FCpu()
| bool open3d::visualization::rendering::GaussianSplatRenderer::ReadColorToRGBA16FCpu |
( |
const FilamentView & |
view, |
|
|
std::vector< std::uint16_t > & |
out |
|
) |
| |
Read the GS composite color overlay for view as RGBA16F half-float bit patterns (4 per pixel, premultiplied alpha). Returns false when the backend cannot read the shared image directly.
◆ ReadCompositeDepthToFloatCpu()
| bool open3d::visualization::rendering::GaussianSplatRenderer::ReadCompositeDepthToFloatCpu |
( |
const FilamentView & |
view, |
|
|
std::vector< float > & |
out, |
|
|
std::uint32_t |
width, |
|
|
std::uint32_t |
height |
|
) |
| |
Read the GS composite depth (R32F, linear eye-space) into out when no scene depth (mesh) is present and the merge pass was skipped.
◆ ReadMergedDepthToUint16Cpu()
| bool open3d::visualization::rendering::GaussianSplatRenderer::ReadMergedDepthToUint16Cpu |
( |
const FilamentView & |
view, |
|
|
std::vector< std::uint16_t > & |
out, |
|
|
std::uint32_t |
width, |
|
|
std::uint32_t |
height |
|
) |
| |
Read the GPU-merged GS+Filament depth (R16UI, [0,65535]) into out for offscreen RenderToDepthImage. Returns false when no merged depth texture exists for this view.
◆ RenderCompositeStage()
| bool open3d::visualization::rendering::GaussianSplatRenderer::RenderCompositeStage |
( |
FilamentView & |
view | ) |
|
Returns true if the composite pass ran and the backend reported success.
◆ RenderGeometryStage()
| void open3d::visualization::rendering::GaussianSplatRenderer::RenderGeometryStage |
( |
FilamentView & |
view, |
|
|
const FilamentScene & |
scene |
|
) |
| |
◆ RequestCompositeForView()
| void open3d::visualization::rendering::GaussianSplatRenderer::RequestCompositeForView |
( |
const FilamentView & |
view | ) |
|
Marks the final composite pass dirty after Filament redraws its shared color target while the geometry pass inputs remain unchanged.
◆ RequestDepthReadbackForView()
| void open3d::visualization::rendering::GaussianSplatRenderer::RequestDepthReadbackForView |
( |
const FilamentView & |
view, |
|
|
bool |
wanted = true |
|
) |
| |
Signal that an offscreen depth readback is needed for view in the next composite pass. Causes the merged_depth_u16_tex to be allocated only when a scene-depth texture is also available.
◆ RequestRedrawForView()
| void open3d::visualization::rendering::GaussianSplatRenderer::RequestRedrawForView |
( |
const FilamentView & |
view | ) |
|
Marks the view so the next geometry + composite passes run even if the scene and camera are unchanged. Used by offscreen FilamentRenderToBuffer captures: without this, needs_render stays false after the first composite and subsequent RenderToImage calls would skip the GS pipeline and read only the Filament swapchain (no splats).
◆ SetEnabled()
| void open3d::visualization::rendering::GaussianSplatRenderer::SetEnabled |
( |
bool |
enabled | ) |
|
◆ SetRenderConfig()
| void open3d::visualization::rendering::GaussianSplatRenderer::SetRenderConfig |
( |
const RenderConfig & |
config | ) |
|
The documentation for this class was generated from the following files: