【问题标题】:THREE.js spread particles evenly in complex modelTHREE.js 在复杂模型中均匀分布粒子
【发布时间】:2015-02-01 19:35:05
【问题描述】:

我正在寻找一种方法来实现与此 http://threejs.org/examples/#webgl_buffergeometry 类似的效果。我主要关心的是粒子(或向量)分布均匀的可能性,如上例所示,但在从 Blender 加载的复杂模型中。

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

我对 3d/three.js 很陌生,我完全被这个问题所困扰。有什么提示吗?

【问题讨论】:

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

标签: javascript jquery three.js


【解决方案1】:

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

检查点是否属于几何图形是一项计算量很大的操作。您可以使用二进制空间分区 (BSP) https://github.com/electricessence/ThreeBSP 或体素化

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

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

【讨论】:

    猜你喜欢
    • 2020-06-21
    • 2011-04-04
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    相关资源
    最近更新 更多