pc_lod_chain — 3D resolution op

• 資料種類:points → table

• 呼叫: import fullseye as fs; fs.ledger.pc_lod_chain(points, spacing, levels=3, seed=0)(要直接呼叫實作,import meshres; meshres.pc_lod_chain(points, spacing, levels=3, seed=0);從台帳取用則 ops3d.get("pc_lod_chain"))

用法

間距逐次加倍的 Poisson-disk 層級(table)。

Level 0 為輸入;level *k* 中任意兩點的距離都不小於 spacing × 2^(k−1)。回傳 levels(點雲串列)、spacings、counts。

步驟: level 0 = 輸入點雲(驗證後的 float64 副本)。level k(1..levels)是對 前一個 level 套用 pc_poisson_disk(prev, spacing * 2**(k-1), seed=seed + k - 1) 的結果(累積地抽稀,因此粗 level 的點必定也包含在細 level 中 = 巢狀)。不移動點(不做網格平均那樣的質心移動)。

參數: points (N, 3)(有限,MAX_POINTS 以下)、spacing > 0(level 1 的最小點間距,與座標單位相同)、levels 為 1..16 的整數、seed 為 Poisson-disk 造訪順序的亂數種子(固定則具確定性)。

回傳值(dict): levels(levels + 1 個 (n_k, 3) 陣列的串列)、spacings([0.0, spacing, 2*spacing, ...],level 0 為 0)、counts (各 level 的點數)、n_levels(levels + 1)。

驗證(ValueError): 點雲的形狀不正確、非有限、點數超限 / spacing 非正 / levels 不是整數、超出範圍。

注意: 各 level 的點數依 ~ 面積 / spacing_k^2 的估計每次減為 4 分之 1,但稀疏區域(原始點間距大於 spacing_k)不會被抽稀而保留。丟掉了什麼,用 pc_thinning_report(points, levels[k]) 來統計。網格的 LOD 見 mesh_lod_chain。

背景知識指南(該運算子背後的物理與規範)

• depth_sensors — 深度感測器知識 —— 測距原理、實機數值、缺測的表現

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

可執行的範例(實際呼叫該運算子並已驗證的樣例)

• mesh_resolution_demo — py -3.11 examples_3d/mesh_resolution_demo.py

型別可銜接的下一個運算子(可接受 table 作為輸入)

fuse_to_voxel · mesh_select_lod

同類別(resolution)

mesh_edge_stats · mesh_detail_map · mesh_split_long_edges · mesh_isotropic_remesh · mesh_sample_points · mesh_lod_chain · mesh_select_lod · mesh_reduction_report


*Provenance: meshres.py — 3D 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.