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 디스크 단계(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 — 깊이 센서 지식 — 측거 원리·실기 수치·결측이 나타나는 방식
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL 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 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.