GsConst class abstract final

Global renderer/packer constants.

Two layouts exist:

  1. CPU/file-packed splat = 128 B (legacy) We actively use the first 80 B; the remaining 48 B are reserved.
  2. GPU texture atlas = 5 texels per splat (RGBA32F → 5 * 16 B = 80 B).

SH0 (DC) is folded into base RGB. The 45 residual SH coeffs (l=1..3) are stored as 12 packed uint32 words (48 B) and unpacked in the shader.

Properties

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Constants

baseColourBias → const double
Bias used when folding DC into 8-bit RGB: baseRGB = clamp01(baseColourBias
byteMax → const int
bytesPerSplat → const int
Total bytes per splat in the binary file / CPU buffer (aligned).
bytesPerSplatInTexture → const int
Bytes per splat once uploaded to the GPU.
bytesPerTexel → const int
Bytes per texel for RGBA32F.
colorOffset → const int
covarianceScale → const double
Σ' = covarianceScale * (M * Mᵀ) as in the paper implementation.
defaultScale → const double
Fallback linear scale if PLY lacks scale_* properties.
maxSplatPixelSize → const double
Maximum pixel diameter for a single splat in screen space.
outputRowLength → const int
Bytes per row written by the file processor (must equal bytesPerSplat).
pixelsPerSplat → const int
Texels per splat in the atlas: P0: pos.xyz + quat(w) | P1: scale.xyz + color(w) | P2–P4: SH words
posOffset → const int
quatByteMid → const int
CPU packing: q_byte = clamp(round(q * quatScale + quatByteMid), 0, 255) Shader decode: q = (byte - quatByteMid) / quatScale, then normalized.
quatOffset → const int
quatScale → const int
scaleOffset → const int
shC0 → const double
Real Y₀⁰ normalization (DC basis). Base RGB stores 0.5 + shC0 * f_dc.
shMax → const double
shMin → const double
Quantization range for residual SH (l=1..3). Pack: byte = round((clamp(c, shMin, shMax) - shMin) * 255 / (shMax - shMin)) Unpack: value = byte * 8/255 - 4
shOffset → const int
shPackedWords → const int
shSpan → const double
splatIdxColMask → const int
splatsPerInstance → const int
Number of Gaussian splats to draw per instanced batch.
splatsPerRow → const int
texWidth → const int
Atlas width in pixels. With bit-addressing in the shader we require: texWidth == pixelsPerSplat * 512 (= 2560), so base_uv = ((idx & 0x1ff) * pixelsPerSplat, idx >> 9)
usedBytesPerSplat → const int
Portion of the 128 B actually consumed by the uploader (mirrors GPU footprint).