załadowałem model używając OBJLoader, tutaj jest kod do załadowania pliku OBJ:Jak uzyskać pozycję kliknięcia myszką na pliku obj załadowanym z OBJLoader?
var loader = new THREE.OBJLoader();
loader.load('obj/teeth/teeth4_5.obj', function(object) {
model = object;
scene.add(model);
objects.push(model);
});
I próbuję użyć RayCaster znaleźć skrzyżowanie. Zaimplementowałem swój kod z przykładu canvas_interactive_cubes (http://mrdoob.github.io/three.js/examples/canvas_interactive_cubes.html) w pliku three.js. Oto kod, aby znaleźć punkt przecięcia:
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);
}
Niestety nie jestem w stanie uzyskać x, y, z współrzędne punktu przecięcia, bez względu na to gdzie kliknąłem, to zawsze pokazał „Błąd typu: intersects [0 ] jest niezdefiniowany ".
Utknąłem tutaj przez kilka dni. Czy ktoś może mi powiedzieć, jak zdobyć skrzyżowanie na załadowanym pliku obj? Doceniam twoją pomoc.
WOW, to działa ... to tak łatwo. Wygląda na to, że zadałem głupie pytanie. I zajmuje dużo czasu, aby znaleźć skrzyżowanie na dużym pliku obj. Wielkie dzięki za odpowiedź !! – user2309002
Spędziłem 2 godziny na tym. Dodaj ', true' i to działa. Nigdy nie widziałem tego na kilku przykładach, które studiowałem. Dzięki ! –