支持中心/SDK 与 API 文档

SDF形状目录

视觉参考: 伊尼戈·奎莱斯 — 3D 距离函数

什么是SDF

带符号的距离函数返回空间中任意一点到某几何体最近表面之间的距离——在内部为负值,在表面上为零,在外部为正值。该距离将成为力曲线的输入:越靠近表面,作用力越大;越远离表面,作用力越小。

导航模块使用 SDF 形状(气泡形状)。

一个图形由一个 primitive 和一个 parameters 块:

                
{
  "shape": {
    "primitive": "sphere",
    "parameters": { "r": 0.05 }
  }
}
        
              

基本形状

原始的参数注释
spherer (半径)最简单的形状
ellipsoida (半轴半径作为 vec3)近似SDF;对力而言准确
boxb (半精度向量 vec3)轴向对齐
rounded_boxb (半幅), r (转弯半径)总面积 = b + r
box_frameb (半幅), e (边缘厚度)一个方框的线框轮廓
planen (普通 vec3), h (沿...偏移) n)无限半空间; n 必须进行归一化

胶囊和圆柱体

原始的参数注释
capsulea, b (端点位置为 vec3), r (半径)半球形帽
capsule_verticalh (半高), r (半径)Y轴简写
capped_cylindera, b (轴端点为 vec3), r (半径)平头端盖
capped_cylinder_verticalh (半高), r (半径)Y轴简写

Torus 系列

原始的参数注释
torusr1 (主半径), r2 (管半径)XZ平面上的甜甜圈
capped_torussc (方向向量为 vec2), r1, r2弧; sc = (cos θ, sin θ)
link_torusle (半身像), r1 (环半径), r2 (管半径)链环形状

圆锥

原始的参数注释
conec (角度作为 vec2) (sin α, cos α)), h (高度)顶端被截断的无限锥
capped_conea, b (端点为 vec3), r1 (底边半径), r2 (顶部半径)截头锥
rounded_conea, b (端点为 vec3), r1, r2截头锥与球面帽
solid_anglec (角度作为 vec2), r (半径)被圆锥体截取的球体

奇特造型

参数类型

标量参数(r, h, e, 等)是纯数字。 向量参数(a, b, n) 是对象: { "x": 0.0, "y": 0.0, "z": 0.0 }. Vec2 参数 (c, sc) 是对象: { "x": 0.707, "y": 0.707 }.

原始的参数注释
vesica_revolveda, b (轴向量为 vec3), w (宽度)镜片形状
rhombusla, lb (半对角线), h (半高挤压), r (四舍五入)钻石横截面
pyramidh (高度)方形底座
octahedronr (内半径)正八面体
hexagonal_prismr (圆周半径), h (半高)沿Y
triangular_prismw (半宽), h (半高)沿着Z

JSON 示例

球体:

                
{ "primitive": "sphere", "parameters": { "r": 0.05 } }
        
              

椭球体(X/Z轴方向更宽):

                
{ "primitive": "ellipsoid", "parameters": { "a": { "x": 0.06, "y": 0.03, "z": 0.06 } } }
        
              

框:

                
{ "primitive": "box", "parameters": { "b": { "x": 0.04, "y": 0.02, "z": 0.04 } } }
        
              

圆角框:

                
{ "primitive": "rounded_box", "parameters": { "b": { "x": 0.30, "y": 0.02, "z": 0.30 }, "r": 0.01 } }
        
              

摘要:

                
{
  "primitive": "capsule",
  "parameters": {
    "a": { "x": 0.0, "y": -0.03, "z": 0.0 },
    "b": { "x": 0.0, "y":  0.03, "z": 0.0 },
    "r": 0.04
  }
}
        
              

平面(沿+X轴的边界):

                
{ "primitive": "plane", "parameters": { "n": { "x": 1.0, "y": 0.0, "z": 0.0 }, "h": 0.0 } }
        
              

环面:

                
{ "primitive": "torus", "parameters": { "r1": 0.08, "r2": 0.02 } }
        
              

截锥体:

                
{
  "primitive": "capped_cone",
  "parameters": {
    "a": { "x": 0.0, "y": -0.05, "z": 0.0 },
    "b": { "x": 0.0, "y":  0.05, "z": 0.0 },
    "r1": 0.04, "r2": 0.01
  }
}
        
              

如果提供了不受支持的原始类型,该服务将回退到基于“距离原点”的球面式计算。