tb_sphere_sdf — 2D typed op

数据种类:pointsvolume

调用:fullseye.apply(img, "tb_sphere_sdf", a=0.5, b=0.5)(2-D 的模型是一张图 + 两个标量旋钮 a,b∈[0,1])

tb_sphere_sdf: input → output

*图为在 128×128 合成输入上实际运行的输出。左为输入,右为输出。点云以俯视散点显示(亮度 = z),一维序列为折线,体数据为沿 z 的最大值投影,视频为中间帧,复数图像为幅值;无法成像的返回值直接显示数值。*

*旋钮 a 不改变输出(实测: 0.1 / 0.5 / 0.9 相同)。*

*旋钮 b 不改变输出(实测: 0.1 / 0.5 / 0.9 相同)。*

阶段(前置算子 → 本算子,从左到右):

tb_sphere_sdf: stages (docs site)

换别的图像(合成场景 / 照片 / 硬币。上排为输入,下排为对应输出。旋钮取默认):

tb_sphere_sdf: other inputs (docs site)

动态(GIF: 依次显示帧 / 视点 / 切片。静态图是完整版,GIF 为辅助):

tb_sphere_sdf: animation

用法

球体的有符号距离场: `|p - center| - R`(内部为负,外部为正)。

> 以下的详细说明为原文 —— 摘要与标题已翻译。

`grid は最終軸が 3 の座標配列 (..., 3)(grid_coords` の出力や (N,3) 点群)。

`center は長さ3、R>=0 は半径。返り値の shape は grid.shape[:-1]`。厳密な SDF

(勾配ノルム 1)。`sdf_offset(sphere_sdf(g,c,R), r) == sphere_sdf(g,c,R+r)`。

Raises ValueError for R<0 or malformed grid/center。

計算: `np.linalg.norm(grid - center, axis=-1) - R`。座標の単位はそのまま距離の

単位になる(`grid_coords` の world 座標を渡せば world 単位)。座標の成分順は

`grid の最終軸の順(grid_coords なら (x, y, z))で、center` も同じ順。

引数と検証(`ValueError`):

• `grid: 最終軸が 3 の float 配列 (..., 3)(1-D の (3,)` も可。0-D や

最終軸が 3 以外は拒否)。

• `center: 要素数 3(reshape(3) できなければ numpy の ValueError`)。

• `R: float() できるスカラ。回転行列などを渡した場合も ValueError`

(この引数は半径であって姿勢ではない)。`R < 0 は拒否、R = 0` は

中心からの距離場そのもの。

返り値: `grid.shape[:-1] の float64(grid_coords` の出力なら

`(nx, ny, nz))。中心で -R`、表面で 0、外側で正。

使いどころ: `grid_coords で格子 → sphere_sdf / box_sdfsdf_union` /

`sdf_subtract で CSG → <= 0 を占有として marching cubes(voxel_to_mesh`

に `-sdf を渡し iso=0` 相当で等値面)。

2-D 進化レジストリへ橋渡しした 3d の op `sphere_sdf。実装は同じで、呼び出し規約だけ op(v, a, b) に合わせてある。この op に調整点は無く、ab` も使われない。

参考(示例数据・文献)

• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。

• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。

在 Studio 中试试

下面的程序已确认可以运行(与图相同的输入)。在 Studio 帮助中,此块会变成按钮,可当场加载并运行。

img_to_points 0.50 0.50
tb_sphere_sdf 0.50 0.50

▸ Load this pipeline  ·  Load & run

可运行的示例(实际调用该算子并已验证的样例)

下面的示例调用的是底层账本算子 sphere_sdf。此桥接算子只是把同一实现适配为 fn(v, a, b) 约定,行为完全相同(只是调用形式不同)。

annotate3d_figurepy -3.11 examples_3d/annotate3d_figure.py

gear_metrologypy -3.11 examples_3d/gear_metrology.py

molecule_atom_countpy -3.11 examples_3d/molecule_atom_count.py

procedural_handpy -3.11 examples_3d/procedural_hand.py

render_beautypy -3.11 examples_3d/render_beauty.py

sdf_csgpy -3.11 examples_3d/sdf_csg.py

sfm_reconpy -3.11 examples_3d/sfm_recon.py

类型可衔接的下一个算子(可接受 volume 作为输入)

identity · vol_gaussian · vol_median · vol_erode · vol_dilate · vol_threshold · vol_reg_dilate · vol_reg_erode

同类别(typed)

tb_points_to_voxel · tb_estimate_point_normals · tb_iss_keypoints · tb_project_points · tb_render_point_depth · tb_statistical_outlier_removal · tb_radius_outlier_removal · tb_voxel_grid_downsample


*Provenance: ops.py — 2D 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*

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