跳转至主要内容

SDF 形式目录

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

什么是无家可归者?​

一个带符号的距离函数返回空间中任意一点与 某形状最近的曲面之间的距离:在曲面内部为负值,在曲面上为零, 在曲面外部为正值。该距离成为力曲线的输入参数:越靠近 曲面,力越大;超出曲面范围后,则不存在任何力。

“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轴快捷键

环面族​

原始的参数备注
torusr1 (rayon majeur), r2 (管半径)XZ平面中的贝涅饼
capped_torussc (以 vec2 形式表示的冰盖方向), r1, r2弧; sc = (cos θ, sin θ)
linkle (半长), r1 (环半径), r2 (管半径)链节的形状

锥体​

原始的参数备注
conec (以 vec2 形式表示的角度 (sin α, cos α)), h (高度)顶端被截断的无限圆锥
capped_conea, b (以 vec3 形式表示的端点), r1 (基地半径), r2 (峰顶区域)锥体截面
rounded_conea, b (以 vec3 形式表示的端点), r1, r2带球面顶面的圆锥体
solid_anglec (以 vec2 形式表示的角度), r (人造丝)被圆锥截断的球体

异域风情​

原始的参数备注
vesica_revolveda, b (以 vec3 形式表示的轴), w (宽度)透镜形状
rhombusla, lb (半对角线), h (半高挤出), r (圆角)菱形截面
pyramidh (高度)正方形底座
octahedronr (已登记的区)正八面体
hexagonal_prismr (限定区域), h (半高)沿着Y河
triangular_prismw (半宽), h (半高)《Z沿线》
参数类型

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

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
}
}

如果提供了不受支持的原始函数,该服务将切换为基于 到原点距离的球面评估。