内置函数自动生成
Kernel 可以调用的 114 个内置函数,按类别分页(相当于 Godot 的 @GlobalScope)。
| 分类 | 简述 | 方法 |
|---|---|---|
| 数学函数 | 逐分量的数学运算:取整、三角、指数对数、插值、向量运算、位运算等。 | abs, acos, add_wrap, asin, atan, atan2, bits, ceil, clamp, clz, cos, cosh, cross, ctz, degrees, determinant, distance, dot, exp, exp2, floor, fma, fract, from_bits, inverse, inversesqrt, isinf, isnan, length, log, log2, max, min, mix, mod, mul_wrap, mulhi, normalize, popcount, pow, radians, reflect, refract, rotl, rotr, round, saturate, sign, sin, sinh, smoothstep, sqrt, step, sub_wrap, tan, tanh, transpose, trunc, udiv, ult, umulhi, urem |
| 构造函数 | 构造向量与矩阵:vec2/vec3/vec4、ivec、mat 等。 | dmat2, dmat3, dmat4, dvec2, dvec3, dvec4, ivec2, ivec3, ivec4, lvec2, lvec3, mat2, mat3, mat4, vec2, vec3, vec4 |
| 类型转换 | 在 Float、Int、Double、Long 之间转换,向量与矩阵逐分量转换。 | double, float, int, long |
| Field 读取 | 从绑定到输入端口的 Field 中读取元素与尺寸。 | at, at_linear, count, fetch, isize, sample, size |
| 上下文函数 | 读取当前元素与外部世界:坐标、定义域、时间、指针、按键、窗口等。 | button, clock, coord, domain, element, icoord, idomain, index, key, pads, pointer, pointer_down, queued, rate, scale, stick, time, typed, wheel, window |
| memory 写入 | 只能在 scan 模式中使用:按步骤顺序写 memory 端口。 | put |
| 散射 | 只能在 scatter 模式中使用:额外发出一对(地址, 值)。 | emit |
| 组内协作 | 只能在 group 模式的 Kernel 中使用:组内各 lane 交换数据、同步。 | exchange, lane |

