ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
cloudViewer::visualization::rendering::TGaussianSplatBuffersBuilder Class Reference

#include <FilamentGeometryBuffersBuilder.h>

Inheritance diagram for cloudViewer::visualization::rendering::TGaussianSplatBuffersBuilder:
Collaboration diagram for cloudViewer::visualization::rendering::TGaussianSplatBuffersBuilder:

Public Member Functions

 TGaussianSplatBuffersBuilder (const t::geometry::PointCloud &geometry)
 Constructs a TGaussianSplatBuffersBuilder object. More...
 
Buffers ConstructBuffers () override
 Constructs vertex and index buffers for Gaussian Splat rendering. More...
 
- Public Member Functions inherited from cloudViewer::visualization::rendering::TPointCloudBuffersBuilder
 TPointCloudBuffersBuilder (const t::geometry::PointCloud &geometry)
 
filament::RenderableManager::PrimitiveType GetPrimitiveType () const override
 
filament::Box ComputeAABB () override
 
- Public Member Functions inherited from cloudViewer::visualization::rendering::GeometryBuffersBuilder
virtual ~GeometryBuffersBuilder ()=default
 
virtual void SetDownsampleThreshold (size_t min_points)
 
virtual void SetWideLines ()
 
virtual void SetAdjustColorsForSRGBToneMapping (bool adjust)
 

Additional Inherited Members

- Public Types inherited from cloudViewer::visualization::rendering::GeometryBuffersBuilder
using Buffers = std::tuple< VertexBufferHandle, IndexBufferHandle, IndexBufferHandle >
 
using IndexType = std::uint32_t
 
- Static Public Member Functions inherited from cloudViewer::visualization::rendering::GeometryBuffersBuilder
static std::unique_ptr< GeometryBuffersBuilderGetBuilder (const ccHObject &geometry)
 
static std::unique_ptr< GeometryBuffersBuilderGetBuilder (const t::geometry::Geometry &geometry)
 
- Static Protected Member Functions inherited from cloudViewer::visualization::rendering::GeometryBuffersBuilder
static void DeallocateBuffer (void *buffer, size_t size, void *user_ptr)
 
static IndexBufferHandle CreateIndexBuffer (size_t max_index, size_t n_subsamples=SIZE_MAX)
 
- Protected Attributes inherited from cloudViewer::visualization::rendering::TPointCloudBuffersBuilder
t::geometry::PointCloud geometry_
 
- Protected Attributes inherited from cloudViewer::visualization::rendering::GeometryBuffersBuilder
size_t downsample_threshold_ = SIZE_MAX
 
bool wide_lines_ = false
 
bool adjust_colors_for_srgb_tonemapping_ = true
 

Detailed Description

Definition at line 182 of file FilamentGeometryBuffersBuilder.h.

Constructor & Destructor Documentation

◆ TGaussianSplatBuffersBuilder()

cloudViewer::visualization::rendering::TGaussianSplatBuffersBuilder::TGaussianSplatBuffersBuilder ( const t::geometry::PointCloud geometry)
explicit

Constructs a TGaussianSplatBuffersBuilder object.

Initializes the Gaussian Splat buffers from the provided geometry and ensures that all necessary attributes are present and correctly formatted. If the geometry is not a Gaussian Splat, a warning is issued. Additionally, attributes like "f_dc", "opacity", "rot", "scale", and "f_rest" are checked for their data type, and converted to Float32 if they are not already in that format.

Definition at line 40 of file GaussianSplatBuffers.cpp.

References cloudViewer::core::Float32, cloudViewer::visualization::rendering::TPointCloudBuffersBuilder::geometry_, cloudViewer::t::geometry::PointCloud::GetPointAttr(), cloudViewer::t::geometry::PointCloud::HasPointAttr(), and LogWarning.

Member Function Documentation

◆ ConstructBuffers()

GeometryBuffersBuilder::Buffers cloudViewer::visualization::rendering::TGaussianSplatBuffersBuilder::ConstructBuffers ( )
overridevirtual

Constructs vertex and index buffers for Gaussian Splat rendering.

This function creates and configures GPU buffers to represent a Gaussian Splat point cloud. It extracts attributes like positions, colors, rotation, scale, and spherical harmonics coefficients from the provided geometry_ and organizes them into separate vertex buffer attributes.

The vertex buffer contains the following attributes:

  • POSITION: Vertex positions (FLOAT3)
  • COLOR: DC component and opacity (FLOAT4)
  • TANGENTS: Rotation quaternion (FLOAT4)
  • CUSTOM0: Scale (FLOAT4)
  • CUSTOM1 to CUSTOM6: SH coefficients (FLOAT4)

Each attribute is checked and converted to the expected data type if necessary, and missing attributes are initialized with default values.

Reimplemented from cloudViewer::visualization::rendering::TPointCloudBuffersBuilder.

Definition at line 63 of file GaussianSplatBuffers.cpp.

References cloudViewer::utility::ceil(), cloudViewer::visualization::rendering::GeometryBuffersBuilder::CreateIndexBuffer(), cloudViewer::visualization::rendering::GeometryBuffersBuilder::DeallocateBuffer(), cloudViewer::visualization::rendering::GeometryBuffersBuilder::downsample_threshold_, cloudViewer::t::geometry::PointCloud::GaussianSplatGetSHOrder(), cloudViewer::visualization::rendering::TPointCloudBuffersBuilder::geometry_, cloudViewer::visualization::rendering::EngineInstance::GetInstance(), cloudViewer::t::geometry::PointCloud::GetPointAttr(), cloudViewer::t::geometry::PointCloud::GetPointPositions(), cloudViewer::visualization::rendering::EngineInstance::GetResourceManager(), LogWarning, points, and cloudViewer::visualization::rendering::VertexBuffer.


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