2013-04-23 6 views
5

मैं OBJLoader का उपयोग कर मॉडल भरी हुई है, यहाँ obj फ़ाइल लोड करने के लिए कोड है:OBJLoader से लोड की गई ओबीजे फ़ाइल पर माउस क्लिकिंग स्थिति कैसे प्राप्त करें?

 var loader = new THREE.OBJLoader(); 
     loader.load('obj/teeth/teeth4_5.obj', function(object) { 
      model = object; 
      scene.add(model); 
      objects.push(model); 
     }); 

और मैं raycaster उपयोग करने के लिए चौराहे खोजने की कोशिश कर रहा हूँ। मैंने तीन कोड में canvas_interactive_cubes उदाहरण (http://mrdoob.github.io/three.js/examples/canvas_interactive_cubes.html) से अपना कोड लागू किया। यहाँ कोड चौराहे को मिल रहा है:

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); 
    } 

दुर्भाग्य से मैं कोई बात नहीं मैं कहाँ क्लिक किया एक्स, वाई, चौराहे के z निर्देशांक प्राप्त करने में सक्षम नहीं हूँ,, यह हमेशा से पता चला है "लेखन त्रुटि: intersects [0 ] अपरिभाषित है "।

मैं कई दिनों से यहां फंस रहा हूं। क्या कोई मुझे लोड की गई ओबीजे फ़ाइल पर छेड़छाड़ करने का तरीका बता सकता है? तुम्हारी सहायता सराहनीय है।

उत्तर

8

तो जैसे पुनरावर्ती ध्वज जोड़ने का प्रयास करें:

var intersects = raycaster.intersectObjects(objects, true); 

Three.js r.58

+0

वाह, यह काम करता है ... कि बहुत आसान है। ऐसा लगता है जैसे मैंने एक मूर्ख सवाल पूछा। और एक बड़ी ओबीजे फ़ाइल पर एक चौराहे खोजने में काफी समय लगता है। आपके उत्तर के लिए बहूत बहूत धन्यवाद!! – user2309002

+0

मैंने इस पर 2 घंटे बिताए हैं। ', सत्य 'जोड़ें और यह काम करता है। मैंने इसे कई उदाहरणों पर कभी नहीं देखा है जिसका मैंने अध्ययन किया था। धन्यवाद ! –

संबंधित मुद्दे