Javascript THREE.js在复杂模型中均匀分布粒子

Javascript THREE.js在复杂模型中均匀分布粒子,javascript,jquery,three.js,Javascript,Jquery,Three.js,我正在寻找一种达到类似效果的方法。我主要关心的是粒子(或矢量)均匀分布的可能性,就像上面的例子,但在从混合器加载的复杂模型中 可能吗 如果是,是否应该以任何特定的方式准备来自搅拌机的模型 我是3d/three.js的新手,我完全被这个问题困扰着。有任何提示吗?您可以在几何体边界框中随机生成点,然后检查点是否属于几何体,如果不属于,则重新生成 检查点是否属于几何体是一项计算代价高昂的操作。可以使用二进制空间分区(BSP)或体素化 如果几何体没有孔,可以尝试使用光线投射检查点归属 评论中提到的另

我正在寻找一种达到类似效果的方法。我主要关心的是粒子(或矢量)均匀分布的可能性,就像上面的例子,但在从混合器加载的复杂模型中

  • 可能吗
  • 如果是,是否应该以任何特定的方式准备来自搅拌机的模型

我是3d/three.js的新手,我完全被这个问题困扰着。有任何提示吗?

您可以在几何体边界框中随机生成点,然后检查点是否属于几何体,如果不属于,则重新生成

检查点是否属于几何体是一项计算代价高昂的操作。可以使用二进制空间分区(BSP)或体素化

如果几何体没有孔,可以尝试使用光线投射检查点归属


评论中提到的另一种更便宜的方法@WestLangley,您可以使用examples/js/utils/GeometryUtils.js中的
THREE.GeometryUtils.RandomPointSingeMetry()
在面上分布点。

另一种方法是使用THREE.js方法
THREE.GeometryUtils.randomPointsInGeometry(几何,n)
,它返回几何体的面(即曲面)上的点。我在文档中找不到RandomPointsGeometry方法,也找不到源,我是不是遗漏了什么?@MichałKlim你找到解决方案了吗,例如?