15 #include <Eigen/Geometry>
24 namespace 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");
97 static constexpr
std::size_t kGaussianCounterCount =
102 static constexpr
std::size_t kGaussianCounterTotalEntriesIndex = 0;
103 static constexpr
std::size_t kGaussianCounterErrorFlagsIndex = 1;
104 static constexpr
std::size_t kGaussianCounterTileCountIndex = 2;
105 static constexpr
std::size_t kGaussianCounterSplatCountIndex = 3;
124 std::vector<std::uint32_t>
126 std::vector<std::uint32_t>
129 std::vector<std::uint32_t>
220 const float* scale_ptr,
221 const float* rot_ptr,
222 const float* f_dc_ptr,
223 const float* opacity_ptr,
224 const float* f_rest_ptr,
225 int source_sh_degree,
226 int desired_sh_degree,
227 float min_opacity_logit,
240 const std::vector<GaussianSplatMergeItem>& items,
242 std::vector<std::uint32_t>* splat_starts =
nullptr);
const char const char value recording_handle imu_sample recording_handle uint8_t size_t data_size k4a_record_configuration_t config target_format k4a_capture_t capture_handle k4a_imu_sample_t imu_sample playback_handle k4a_logging_message_cb_t void min_level device_handle k4a_imu_sample_t timeout_in_ms capture_handle capture_handle capture_handle image_handle temperature_c k4a_image_t image_handle uint8_t image_handle image_handle image_handle image_handle uint32_t
Definition: K4aPlugin.cpp:548
const char const char value recording_handle imu_sample recording_handle uint8_t size_t data_size k4a_record_configuration_t config target_format k4a_capture_t capture_handle k4a_imu_sample_t imu_sample playback_handle k4a_logging_message_cb_t void min_level device_handle k4a_imu_sample_t timeout_in_ms capture_handle capture_handle capture_handle image_handle temperature_c k4a_image_t image_handle uint8_t image_handle image_handle image_handle image_handle image_handle timestamp_usec white_balance image_handle k4a_device_configuration_t config device_handle char size_t serial_number_size bool int32_t int32_t int32_t int32_t k4a_color_control_mode_t default_mode value const const k4a_calibration_t calibration char size_t
Definition: K4aPlugin.cpp:719
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:277
constexpr std::uint32_t kGaussianGpuErrorTileEntryOverflow
Definition: GaussianSplatDataPacking.h:107
constexpr std::uint32_t kGaussianGpuErrorKnownMask
Definition: GaussianSplatDataPacking.h:109
void MergeGaussianSplatPackedAttrs(const std::vector< GaussianSplatMergeItem > &items, GaussianSplatPackedAttrs *out, std::vector< std::uint32_t > *splat_starts)
Definition: GaussianSplatDataPacking.cpp:365
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:164
constexpr std::uint32_t kGaussianGpuErrorSortCountClamped
Definition: GaussianSplatDataPacking.h:108
void ComputeGaussianGpuBufferSizes(const PackedGaussianScene &packed, GaussianGpuBufferSizes *out)
Definition: GaussianSplatDataPacking.cpp:148
Definition: PinholeCameraIntrinsic.cpp:16
Definition: GaussianSplatDataPacking.h:169
std::size_t radix_params_size
Definition: GaussianSplatDataPacking.h:180
std::size_t histogram_buf_size
Definition: GaussianSplatDataPacking.h:177
std::uint32_t radix_num_wg_cap
Definition: GaussianSplatDataPacking.h:182
std::size_t key_cap_size
Sort key/value ping-pong buffers (entry_capacity × 4 B each, ×2 arrays).
Definition: GaussianSplatDataPacking.h:176
std::size_t dispatch_args_size
8 indirect dispatch entries (4×histogram + 4×scatter).
Definition: GaussianSplatDataPacking.h:179
std::size_t projected_composite_size
Composite-pass projected data (32 B/splat, binding 6).
Definition: GaussianSplatDataPacking.h:171
std::size_t tile_scalar_size
Definition: GaussianSplatDataPacking.h:174
std::uint32_t entries_capacity
Definition: GaussianSplatDataPacking.h:181
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:142
const GaussianSplatPackedAttrs * attrs
Definition: GaussianSplatDataPacking.h:143
bool visible
Definition: GaussianSplatDataPacking.h:144
Definition: GaussianSplatDataPacking.h:122
std::uint32_t splat_count
Definition: GaussianSplatDataPacking.h:135
std::vector< Std430Vec4 > positions
fp32 vec4, 16 B/splat
Definition: GaussianSplatDataPacking.h:123
std::vector< std::uint32_t > dc_opacity
fp16×4 in uvec2 pair, 8 B/splat
Definition: GaussianSplatDataPacking.h:128
std::vector< std::uint32_t > rotations
snorm8-biased×4 in uint, 4 B/splat
Definition: GaussianSplatDataPacking.h:127
int sh_degree
Effective SH degree packed here.
Definition: GaussianSplatDataPacking.h:136
std::vector< std::uint32_t > visibility_mask
Definition: GaussianSplatDataPacking.h:134
std::vector< std::uint32_t > scales
fp16×4 in uvec2 pair, 8 B/splat; linear
Definition: GaussianSplatDataPacking.h:125
std::vector< std::uint32_t > sh_coefficients
Definition: GaussianSplatDataPacking.h:130
bool antialias
Definition: GaussianSplatDataPacking.h:137
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:64
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:151
bool valid
Definition: GaussianSplatDataPacking.h:156
GaussianViewParams view_params
Definition: GaussianSplatDataPacking.h:152
std::uint32_t tile_count
Definition: GaussianSplatDataPacking.h:154
std::uint32_t pixel_count
Definition: GaussianSplatDataPacking.h:155
std::uint32_t splat_count
Definition: GaussianSplatDataPacking.h:153
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