如何检测光线是否撞击网格内部?

时间:2016-03-17 21:57:41

标签: three.js

我试图使用RayCaster类来检测粒子何时与网格碰撞。我通过在粒子的运动方向上投射光线来做到这一点,并且如果光线照射到网格上,并且到网格的距离小于粒子在当前帧中行进的距离,则检测到碰撞。 / p>

示例代码:

var whereAmI = particle.position;
var whereWasI = particle.previous;

var diff = new THREE.Vector3();
diff.subVectors(whereAmI,whereWasI);

var directionOfMotion = diff.clone().normalize();
var ray = new THREE.Raycaster( whereWasI, directionOfMotion );
var collisionResults = ray.intersectObjects( collidableMeshList );

if(collisionResults[0].distance < diff.length()){
  whereAmI.copy(whereWasI);
}

如果粒子在网格之外,它可以正常工作。但是,当粒子在网格中时,我遇到了问题。我想要检测这些事件的一种方法是使网格双面,并从粒子投射光线,看它是否击中网格的内部。所以我的问题是:使用RayCaster投射光线时,有没有办法确定它是否会撞击网格内部?

谢谢, Aatish

0 个答案:

没有答案