javascript - Three.js - 如何确定网格和粒子系统之间的交集?

标签 javascript three.js glsl

我有一个使用 Sprite 的粒子系统,它是一个类似于 Three.js 中的“交互式/点”示例的 Object3D,以及一个跟随我的光标的基本球体网格。

https://threejs.org/examples/?q=point#webgl_interactive_points

mesh intersection

确定其中两个对象何时相交的最佳方法是什么?我希望能够用球体插入粒子,但首先我需要一个“球体内部”的点数组。谢谢!

最佳答案

要知道某个点是在球体内部还是外部,您可以从该点向给定方向转换光线。然后计算射线与球体几何形状的三 Angular 形的相交。如果计数为奇数,则该点在内部,否则在外部。

此处提供了一些显示粒子注入(inject)网格的演示(相同原理)https://github.com/heroncendre/Volpar

关于javascript - Three.js - 如何确定网格和粒子系统之间的交集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54024752/

相关文章:

glsl - 像素着色器中可以实现哪种模糊?

c - GL 调用着色器并获取输出颜色

javascript - 使用 jQuery 获取 DOM 中的后代节点

javascript - 打印页面 - 每个 div 换行

javascript - “Thinking in ReactJS",如果我有AngularJS背景?

javascript - 如何将面添加到索引 THREE.BufferGeometry?

javascript - 使用 three.js 和 tween.js 以 90 度为增量旋转对象以创建 360 度循环

three.js - THREE.Object3D : How to disable Raycast for Object, 不是 Material ?

javascript - JavaScript 中宠物的被动变量无法正常工作

c++ - GLSL 灯光/高光随相机移动