15#include <Eigen/Geometry>
24namespace visualization {
32 float x = 0.f,
y = 0.f,
z = 0.f,
w = 0.f;
62 "GaussianViewParams must be 288 bytes to match GLSL layout");
82 "ProjectedComposite must be 32 bytes to match GLSL layout");
96 "GaussianGpuCounters must be 16 bytes");
97static constexpr std::size_t kGaussianCounterCount =
102static constexpr std::size_t kGaussianCounterTotalEntriesIndex = 0;
103static constexpr std::size_t kGaussianCounterErrorFlagsIndex = 1;
104static constexpr std::size_t kGaussianCounterTileCountIndex = 2;
105static constexpr std::size_t kGaussianCounterSplatCountIndex = 3;
131 std::vector<std::uint32_t>
133 std::vector<std::uint32_t>
136 std::vector<std::uint32_t>
230 const float* scale_ptr,
231 const float* rot_ptr,
232 const float* f_dc_ptr,
233 const float* opacity_ptr,
234 const float* f_rest_ptr,
235 int source_sh_degree,
236 int desired_sh_degree,
237 float min_opacity_logit,
250 const std::vector<GaussianSplatMergeItem>& items,
252 std::vector<std::uint32_t>* splat_starts =
nullptr);
constexpr std::uint32_t kGaussianGpuErrorMaxTilesPerSplatExceeded
Definition GaussianSplatDataPacking.h:113
void PackGaussianSplatAttrsDirect(const float *pts_ptr, std::size_t n, const float *scale_ptr, const float *rot_ptr, const float *f_dc_ptr, const float *opacity_ptr, const float *f_rest_ptr, int source_sh_degree, int desired_sh_degree, float min_opacity_logit, bool antialias, GaussianSplatPackedAttrs &out)
Definition GaussianSplatDataPacking.cpp:282
constexpr std::uint32_t kGaussianGpuErrorTileEntryOverflow
Set when the shared sort-entry buffer overflows (total entries > capacity).
Definition GaussianSplatDataPacking.h:108
constexpr std::uint32_t kGaussianGpuErrorKnownMask
Definition GaussianSplatDataPacking.h:115
void MergeGaussianSplatPackedAttrs(const std::vector< GaussianSplatMergeItem > &items, GaussianSplatPackedAttrs *out, std::vector< std::uint32_t > *splat_starts)
Definition GaussianSplatDataPacking.cpp:370
PackedGaussianScene PackGaussianViewParams(const GaussianSplatPackedAttrs &attrs, const GaussianSplatRenderer::ViewRenderData &render_data, const GaussianSplatRenderer::RenderConfig &config)
Definition GaussianSplatDataPacking.cpp:185
constexpr std::uint32_t kGaussianRadixParamsStride
Definition GaussianSplatDataPacking.h:171
constexpr std::uint32_t kGaussianGpuErrorSortCountClamped
Set when the radix-sort dispatch count is clamped to the entry capacity.
Definition GaussianSplatDataPacking.h:110
void ComputeGaussianGpuBufferSizes(const PackedGaussianScene &packed, GaussianGpuBufferSizes *out)
Definition GaussianSplatDataPacking.cpp:148
Definition PinholeCameraIntrinsic.cpp:16
Definition GaussianSplatDataPacking.h:176
std::size_t radix_params_size
Definition GaussianSplatDataPacking.h:187
std::size_t histogram_buf_size
Definition GaussianSplatDataPacking.h:184
std::uint32_t radix_num_wg_cap
Definition GaussianSplatDataPacking.h:189
std::size_t key_cap_size
Sort key/value ping-pong buffers (entry_capacity × 4 B each, ×2 arrays).
Definition GaussianSplatDataPacking.h:183
std::size_t dispatch_args_size
8 indirect dispatch entries (4×histogram + 4×scatter).
Definition GaussianSplatDataPacking.h:186
std::size_t projected_composite_size
Composite-pass projected data (32 B/splat, binding 6).
Definition GaussianSplatDataPacking.h:178
std::size_t tile_scalar_size
Definition GaussianSplatDataPacking.h:181
std::uint32_t entries_capacity
Definition GaussianSplatDataPacking.h:188
Definition GaussianSplatDataPacking.h:88
std::uint32_t splat_count
Visible splat count for the frame.
Definition GaussianSplatDataPacking.h:93
std::uint32_t error_flags
GPU error bitmask (kGaussianGpuError*).
Definition GaussianSplatDataPacking.h:91
std::uint32_t total_entries
Raw total tile entries from prefix-sum.
Definition GaussianSplatDataPacking.h:89
std::uint32_t tile_count
Total tile count for the frame.
Definition GaussianSplatDataPacking.h:92
Definition GaussianSplatDataPacking.h:149
const GaussianSplatPackedAttrs * attrs
Definition GaussianSplatDataPacking.h:150
bool visible
Definition GaussianSplatDataPacking.h:151
Definition GaussianSplatDataPacking.h:129
std::uint32_t splat_count
Definition GaussianSplatDataPacking.h:142
std::vector< Std430Vec4 > positions
fp32 vec4, 16 B/splat
Definition GaussianSplatDataPacking.h:130
std::vector< std::uint32_t > dc_opacity
fp16×4 in uvec2 pair, 8 B/splat
Definition GaussianSplatDataPacking.h:135
std::vector< std::uint32_t > rotations
snorm8-biased×4 in uint, 4 B/splat
Definition GaussianSplatDataPacking.h:134
int sh_degree
Effective SH degree packed here.
Definition GaussianSplatDataPacking.h:143
std::vector< std::uint32_t > visibility_mask
Definition GaussianSplatDataPacking.h:141
std::vector< std::uint32_t > scales
fp16×4 in uvec2 pair, 8 B/splat; linear
Definition GaussianSplatDataPacking.h:132
std::vector< std::uint32_t > sh_coefficients
Definition GaussianSplatDataPacking.h:137
bool antialias
Definition GaussianSplatDataPacking.h:144
Tunable knobs for the compute pipeline, set once at construction.
Definition GaussianSplatRenderer.h:41
Camera and viewport state extracted per-view each geometry pass.
Definition GaussianSplatRenderer.h:69
Definition GaussianSplatDataPacking.h:38
std::uint32_t scene[4]
Definition GaussianSplatDataPacking.h:51
float world_from_model[16]
Definition GaussianSplatDataPacking.h:40
float depth_range_and_flags[4]
Definition GaussianSplatDataPacking.h:59
std::uint32_t tiles[4]
Definition GaussianSplatDataPacking.h:53
std::uint32_t limits[4]
Definition GaussianSplatDataPacking.h:57
float clip_from_view[16]
Definition GaussianSplatDataPacking.h:44
float viewport_origin_and_size[4]
Definition GaussianSplatDataPacking.h:48
float camera_position_and_near[4]
Definition GaussianSplatDataPacking.h:46
float view_from_world[16]
Definition GaussianSplatDataPacking.h:42
Definition GaussianSplatDataPacking.h:158
bool valid
Definition GaussianSplatDataPacking.h:163
GaussianViewParams view_params
Definition GaussianSplatDataPacking.h:159
std::uint32_t tile_count
Definition GaussianSplatDataPacking.h:161
std::uint32_t pixel_count
Definition GaussianSplatDataPacking.h:162
std::uint32_t splat_count
Definition GaussianSplatDataPacking.h:160
Definition GaussianSplatDataPacking.h:74
std::uint32_t center_xy_fp16
Definition GaussianSplatDataPacking.h:75
float depth
Definition GaussianSplatDataPacking.h:76
Std430Vec4 inv_basis
Definition GaussianSplatDataPacking.h:79
float alpha
Definition GaussianSplatDataPacking.h:77
std::uint32_t packed_rgba8
Definition GaussianSplatDataPacking.h:78
vec4 stored as 4 floats (std430 layout).
Definition GaussianSplatDataPacking.h:31
float w
Definition GaussianSplatDataPacking.h:32
float z
Definition GaussianSplatDataPacking.h:32
float x
Definition GaussianSplatDataPacking.h:32
float y
Definition GaussianSplatDataPacking.h:32