Set Position (Signed Distance Field)
菜单路径:Position > Set Position (Signed Distance Field)
Set Position (Signed Distance Field) 代码块根据输入有向距离场 (SDF) 计算位置,并根据合成效果将结果存储在 position 属性 之中。
此代码块可以从 SDF 的 Surface、Volume 或者 Thick Surface 计算位置,其中厚度可以是相对于形状的大小,也可以是绝对值。
此代码块还根据计算出的形状上的位置计算一个方向向量,并根据合成效果将其存储到 direction attribute。该方向等于计算出的粒子位置所在表面的法线。
备注:Velocity from Direction and Speed 代码块以后可以处理方向属性。
代码块兼容性
此代码块兼容于以下上下文:
- Initialize
- Update
- 任何输出上下文
代码块设置
设置 | 类型 | 描述 |
---|---|---|
Position Mode | Enum | 指定此代码块如何使用形状来计算位置。选项: • Surface:仅计算形状表面上的位置。 • Volume:计算整个形状体积内的位置。 • Thickness Absolute:计算给定绝对厚度的厚表面上的位置。 • Thickness Relative 将计算给定最大轴大小百分比的厚表面上的位置。 |
Spawn Mode | Enum | 指定此代码块如何在形状的弧之间分布粒子。 • Random:计算弧上的每粒子随机进度 (0..1)。 • Custom:允许您在 Arc Sequencer 属性端口中指定进度。 |
Kill Outliers | Bool | (检查器)表示是否杀死位置不附着于表面/体积的粒子。 |
Projection Steps | uint | (检查器)此代码块用于将粒子投影到 SDF 表面的步骤数。这可能会影响性能,但可以减少异常值。 |
代码块属性
Input | 类型 | 描述 |
---|---|---|
Box | AABox | 确定要从中计算位置的形状的 Axis-Aligned Box。 |
Thickness | float | 用于位置计算的形状表面的厚度。 此属性仅在将 Position Mode 设置为 Thickness Relative 或 Thickness Absolute 时才显示。 |
Arc Sequencer | float | 弧中生成粒子的位置。 此属性仅在将 Spawn Mode 设置为 Custom 时显示。 |
注意
此代码块根据 SDF 的最大轴计算相对厚度,不一定是 SDF 所代表的物体的大小。因此,即使相对厚度小于 1,此代码块计算的位置也可能位于整个形状的体积内。