マウスがパーティクル システムのパーティクルの上に置かれたことを検出しようとしています。私が行っていた検出は次のようになり、すべてのフレームで実行されます。
function check_intersections() {
var vect = new THREE.Vector3(
mouse.x,
mouse.y,
0.5
);
projectr.unprojectVector( vect, camera );
var raycaster = new THREE.Ray( camera.position, vect.subSelf( camera.position ).normalize() );
var intersects = raycaster.intersectObjects( particleSystem );
if ( intersects.length > 0 ) {
//intersects[ 0 ].object.materials[ 0 ].color.setHex( Math.random() * 0xffffff );
noticeDiv.text('Intersection');
}
}`
varparticleSystem は、数千のパーティクルを含む私のパーティクル システムであり、マウスは次のように動くたびに定義されます。
function onDocumentMouseMove( event ) {
// update the mouse variable
mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
}
私はいくつかの例を見てきましたが、これを正しく理解することはできません。