geladen ich das Modell OBJLoader verwenden, hier ist der Code die OBJ-Datei zum Laden:Wie bekomme ich die Mausklickposition auf eine OBJ-Datei, die von OBJLoader geladen wurde?
var loader = new THREE.OBJLoader();
loader.load('obj/teeth/teeth4_5.obj', function(object) {
model = object;
scene.add(model);
objects.push(model);
});
Und ich versuche Raycaster zu verwenden, um die Kreuzung zu finden. Ich habe meinen Code aus dem canvas_interactive_cubes-Beispiel (http://mrdoob.github.io/three.js/examples/canvas_interactive_cubes.html) in three.js implementiert. Hier ist der Code die Kreuzung zu finden:
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);
}
Leider bin ich nicht in der Lage, die x, y, z-Koordinaten der Kreuzung zu bekommen, egal wo ich geklickt, es zeigte immer „Typeerror: intersects [0 ] ist nicht definiert".
Ich bleibe hier für mehrere Tage stecken. Kann mir jemand einen Weg geben, die Schnittmenge in einer geladenen Obj-Datei zu finden? Ich schätze Ihre Hilfe.
WOW, es funktioniert ... das ist so einfach. Scheint so, als hätte ich eine dumme Frage gestellt. Und es dauert lange, bis eine Kreuzung in einer großen obj-Datei gefunden wird. Vielen Dank für Ihre Antwort !! – user2309002
Ich habe 2 Stunden damit verbracht. Add ', true' und es funktioniert. Ich habe es nie an mehreren Beispielen gesehen, die ich studiert habe. Vielen Dank ! –