Gaussian splatting

Data

class GaussianDataStandard

Backends

class VulkanGaussianSplatting : public virtual klartraum::RenderGraphElement, public virtual klartraum::ComputeGraphGroup
struct GsplatConfig

Operations on Gaussians

class GaussianTransform : public klartraum::GeneralComputation<GaussianTransformPushConstants>

Writes transformed copies of Gaussians every time the graph runs.

Positions, orientations and sizes move by a transform buffer (see TransformBuffer), SH coefficients rotate with the scene (shaders/gaussians/transform_gaussians.comp). The output is per-path, so a frame in flight keeps its Gaussians while the next one is written.

class GaussianMerge : public klartraum::GeneralComputation<GaussianMergePushConstants>

Concatenates two sets of Gaussians every time the graph runs.

A’s Gaussians come first, so one backend renders and depth-sorts both (shaders/gaussians/merge_gaussians.comp). The output is per-path.

class TransformBuffer : public klartraum::GeneralComputation<void>

Builds a transform buffer for GaussianTransform from seven scalars.

Reads translation x, y, z, rotation pitch, yaw, roll in degrees (about X, then Y, then Z) and a uniform scale, each from the first float of its buffer, e.g. a HostFloat the CPU animates. Writes translation, scale, the rotation quaternion and the rotation matrices of the three SH bands (shaders/gaussians/make_transform.comp). One invocation per run.