2
votes

Below is the code that i am currently experimenting with, raycaster.intersectObjects returns 0 always what am i missing here? I have also tried raycaster.intersectObjects( objects );

geometry.vertices.push(vertex);

objects.push(geometry);

var particleTexture = THREE.ImageUtils.loadTexture('images/test.jpg'); var materials = new THREE.PointsMaterial({ map:particleTexture, size: 150 });

document.addEventListener('click', onDocumentMouseClick, false);

function onDocumentMouseClick(event) {

event.preventDefault();

var vector = new THREE.Vector3();
var raycaster = new THREE.Raycaster();


vector.set( ( event.clientX / window.innerWidth ) * 2 - 1, - ( event.clientY / window.innerHeight ) * 2 + 1, 0.5 ); // z = 0.5 important!

vector.unproject( camera );

raycaster.set( camera.position, vector.sub( camera.position ).normalize() );

var intersects = raycaster.intersectObjects( scene.children, true );

}

particles = new THREE.Points(geometry, materials);

scene.add(particles);

1
Is your scene window.innerwidth by window.innerheight when it comes to size?Rush2112
The camera aspect is defined as camera.aspect = window.innerWidth / window.innerHeight; is that what you are referring to?StillLearning
Sorry, I meant when you call renderer.setSize(x,y) what are your parameters? If they aren't window.innerWidth and window.innerHeight then I can give you a good answerRush2112
for renderer.setSize i am passing window.innerHeight and window.innerWidthStillLearning

1 Answers

0
votes

You can intersect from Array, scene.childern is Object.

Try to make another array reference to inersected object.

    function onDocumentMouseMove( event ) {  
            event.preventDefault();
            mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
            mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
    }

    function onDocumentMouseUp( event ) {
     event.preventDefault();
     if(event.which == 1)  { /// LMB
                           var raycaster = new THREE.Raycaster();
                            raycaster.setFromCamera( mouse, camera ); 
                           raycaster.params.Points.threshold = 100000;   

                    var intersects = raycaster.intersectObjects( intersects_obj, false ); 
       console.log(intersects_m);
     }
    } 

    var mouse = new THREE.Vector2();
    var intersects_obj = [];


    canvas.addEventListener( 'mousemove', onDocumentMouseMove, false );   
    canvas.addEventListener( 'mouseup', onDocumentMouseUp, false );

//var paticles = .... your code;

    intersects_obj.push(paticles);