ho caricato il modello utilizzando OBJLoader, ecco il codice per il caricamento del file obj:Come ottenere il clic del mouse su un file obj caricato da OBJLoader?
var loader = new THREE.OBJLoader();
loader.load('obj/teeth/teeth4_5.obj', function(object) {
model = object;
scene.add(model);
objects.push(model);
});
E sto cercando di utilizzare raycaster per trovare l'intersezione. Ho implementato il mio codice dall'esempio canvas_interactive_cubes (http://mrdoob.github.io/three.js/examples/canvas_interactive_cubes.html) in three.js. Ecco il codice per trovare l'intersezione:
function onDocumentMouseDown(event){
event.preventDefault();
var mouseX = (event.clientX/window.innerWidth)*2-1;
var mouseY = -(event.clientY /window.innerHeight)*2+1;
var vector = new THREE.Vector3(mouseX, mouseY, 0.5);
projector.unprojectVector(vector, camera);
var raycaster = new THREE.Raycaster(camera.position, vector.sub(camera.position).normalize());
var intersects = raycaster.intersectObjects(scene.children);
console.log(intersects[0].point);
}
Purtroppo io non sono in grado di ottenere la x, y, z le coordinate del punto di intersezione, non importa dove ho cliccato, è sempre mostrato "TypeError: interseca [0 ] non è definito ".
Sono bloccato qui per diversi giorni. Qualcuno può dirmi un modo per ottenere l'intersezione su un file obj caricato? Apprezzo il vostro aiuto.
WOW, funziona ... che è così facile. Sembra che ho fatto una domanda stupida. E ci vuole molto tempo per trovare un'intersezione su un grande file obj. Grazie mille per la tua risposta!! – user2309002
Ho passato 2 ore a questo. Aggiungi ', true' e funziona. Non l'ho mai visto su diversi esempi che ho studiato. Grazie ! –