Three.js边界框错误对齐

时间:2018-04-27 02:51:42

标签: three.js bounding-box particle-system

在我的程序中,我将点添加到粒子系统,然后计算它的边界框:

var object = new THREE.Mesh(geometry, new THREE.MeshBasicMaterial(0xff0000));
var box = new THREE.BoxHelper( object, 0xffff00 );
scene.add(box);

geometry是BufferGeometry的实例,它包含构成粒子系统的所有点。

我看到的是边界框错误对齐。它的方向垂直于预期的方向。

enter image description here

所以我希望线框结构能够包围点云。

我需要在这里做些额外的事吗?

编辑:

我正在处理的代码是在github repo中: github file

在函数ParticleSystemBatcher.prototype.push中,从文件读取的点被推入粒子系统。我在此函数末尾添加了上面的代码。边界框确实出现,但是对齐错误。

1 个答案:

答案 0 :(得分:1)

你有一个THREE.ShaderMaterial,它可以应用一些逻辑来定位这些顶点。因此,渲染的结果与存储在主存储器中的结果不同。

您可以通过制作Mesh或精灵来调试此项,并将每个您期望系统中的粒子定位到仅使用场景图(object.position.set())的位置。结果将是一堆与粒子系统不在同一空间的点。这些也适合边界框。

解决方案是应用着色器应用的相同转换。