用途:为粒子系统施加力、场与约束,生成动态运动效果,常用于 Three.js / WebGL 粒子动画。
主要能力:重力(常量力);风力(方向 + 噪声湍流);阻力(线性与二次方阻尼);点吸引/排斥(反平方衰减);轨道吸引子与多吸引子(带影响半径与平滑衰减);速度场(Curl 噪声、流场网格、涡旋场);湍流(Simplex 与 CPU 近似);碰撞(平面、球体,含反弹系数与内外约束);积分方法(Euler、Verlet、RK4)。
使用方式:以 Float32Array 存放位置与速度,按帧(delta)累加力并更新位置,例如重力循环中 velocities[i*3+1] -= 9.8 * delta,再更新 positions 并设置 geometry.attributes.position.needsUpdate = true。场与湍流可在顶点着色器中以 snoise/curlNoise 配合 uTime 实现。
文件结构:SKILL.md;references/forces.md、references/integration.md;scripts/forces/gravity.ts、attractors.ts、fields.ts;scripts/collision/planes.ts、shapes.ts。
适用场景:粒子动画、流体/烟雾效果、天体与轨道运动、受风与碰撞的粒子表现。
限制:资料未提供性能基准、平台支持、许可与收费信息,暂未提供。