ReUseX  0.0.5
3D Point Cloud Processing for Building Reuse
Loading...
Searching...
No Matches
GaussianCloud.hpp File Reference
#include <array>
#include <cstddef>
#include <cstdint>
#include <filesystem>
#include <vector>
#include <reusex/types/point_types.hpp>
Include dependency graph for GaussianCloud.hpp:

Go to the source code of this file.

Classes

struct  reusex::gsplat::GaussianCloud
 A set of 3D Gaussians in plain host memory. More...
struct  reusex::gsplat::GaussianInitOptions
 Parameters for seeding Gaussians from a ReUseX point cloud. More...

Namespaces

namespace  reusex
namespace  reusex::gsplat

Functions

float reusex::gsplat::rgb_to_sh_dc (float c)
 RGB in [0,1] -> degree-0 SH coefficient.
float reusex::gsplat::sh_dc_to_rgb (float f)
 Degree-0 SH coefficient -> RGB in [0,1] (not clamped).
float reusex::gsplat::inverse_sigmoid (float x)
 Numerically safe logit, the inverse of the sigmoid used for opacity.
GaussianCloud reusex::gsplat::init_from_point_cloud (const CloudPtr &cloud, const GaussianInitOptions &opt={})
 Seed Gaussians from an XYZRGB cloud: means = point positions, DC colour = point colour, scale = log of the k-NN mean spacing, rotation = identity, opacity = logit(initial_opacity).
std::vector< std::uint8_t > reusex::gsplat::gaussian_ply_bytes (const GaussianCloud &gaussians)
 Serialize to a 3DGS-format binary-little-endian .ply in memory (the property names the reference implementation and every common viewer expect: x/y/z, nx/ny/nz, f_dc_*, f_rest_*, opacity, scale_*, rot_*).
void reusex::gsplat::save_gaussian_ply (const GaussianCloud &gaussians, const std::filesystem::path &path)
 Write the bytes of gaussian_ply_bytes() to path.
GaussianCloud reusex::gsplat::load_gaussian_ply (const std::filesystem::path &path)
 Read back a .ply written by save_gaussian_ply.

Variables

constexpr float reusex::gsplat::kShC0 = 0.28209479177387814f
 The 3D Gaussian Splatting DC spherical-harmonic basis function value, 0.5 * sqrt(1/pi).