WitneyWW's picture
Surface sampling vs trivial downsampling on bigpointcloud_001
08dc587 verified
|
Raw
History Blame Contribute Delete
1.44 kB
---
title: Point Cloud Sampling Strategies
emoji: 🟦
colorFrom: blue
colorTo: gray
sdk: static
app_file: index.html
pinned: false
---
# Sampling more points on the surface
Four ways to turn `bigpointcloud_001.ply` (11,357 points, a scan of a motherboard) into a
fixed-budget point cloud, each scored against the object's **true surface**
(`motherboard.stl`, 477,957 triangles) rather than against the input cloud:
| strategy | what it does |
| --- | --- |
| `random` | random subsample of the input cloud |
| `voxel` | voxel downsample of the input cloud, voxel size bisected to hit the budget exactly |
| `surface` | 200,000 Poisson-disk points drawn on the mesh surface, then voxel-downsampled to the budget |
| `surface_pd` | Poisson-disk sampled straight onto the mesh at the budget |
The page has a side-by-side WebGL viewer with locked cameras, metric tables at 2,048 /
4,096 / 8,192 points, and static renders.
**Headline:** at a fixed budget, sampling the mesh does *not* beat plain voxel downsampling
on coverage — the two are within noise of each other. What it buys is (a) no density
ceiling, so the dense 200k resample reaches 4.3× better surface coverage than the input
cloud can, and (b) exact accuracy and blue-noise spacing, since Poisson-disk points lie on
the surface by construction instead of being voxel centroids that float off it.
Generated by `compare_sampling.py` and `voxel_downsample.py` (Open3D 0.18).