थोड़ा जटिल है, मेरे साथ इतना नंगे:Three.js: रे चौराहे जब काम नहीं कर रहा morphtargets का उपयोग कर
रे एक दूसरे को काटना काम करता है एक वस्तु नहीं morphTargets है पूरी तरह से जब।
एक वस्तु morphTargets केवल मूल स्थिति विभाजित किया जा सकता है, तो वह कहते हैं, अगर मैं
0,0,0
से50,50,50
करने के लिए एक मॉडल रूप रे 50,50,50 में वस्तु के साथ एक दूसरे को काटना नहीं होगा, बजाय, जब मैं0,0,0
से अधिक माउस प्राप्त करता हूं मुझे एक चौराहे मिलती है (भले ही वस्तु अब और नहीं है !?)।
क्या कोई ऐसा ध्वज है जिसे मुझे तीन.जेएस बनाने के लिए चालू करने की आवश्यकता है, यह पता है कि कविताएं चली गई हैं?
संपादित करें, कोड जोड़ा गया।
यह मेरा जाल बना देता है और (जो रे का उपयोग करता है एक दूसरे को काटना) वस्तुओं सरणी में जोड़ देता है:
function createDeer(deerGeometry, materials) {
mesh = new THREE.MorphAnimMesh(deerGeometry, new THREE.MeshLambertMaterial({ color: 0xE8E8E8, ambient: 0xE8E8E8, morphTargets: true, vertexColors: THREE.FaceColors }));
mesh.scale.set(3, 3, 3);
mesh.position.set(0, -3, 0);
mesh.rotation.set(0, 0, 0);
mesh.castShadow = true;
mesh.receiveShadow = true;
mesh.geometry.dynamic = true;
scene.add(mesh);
objects.push(mesh);
}
रे चौराहे, mousedown (वहाँ एक माउस ले जाएँ के रूप में अच्छी तरह से, एक ही बात) पर होता है जैसे कि मैंने कहा, कोड ठीक काम करता है, यह सिर्फ मूल unmorphed जाल के साथ अन्तर्विभाजक है:
function onDocumentMouseDown(event) {
event.preventDefault();
var vector = new THREE.Vector3(mouse.x, mouse.y, 0.5);
projector.unprojectVector(vector, camera);
var ray = new THREE.Ray(camera.position, vector.subSelf(camera.position).normalize());
var intersects = ray.intersectObjects(objects);
if (intersects.length > 0) {
SELECTED = intersects[ 0 ].object;
for(var i=0; i<objects.length; i++)
{
if(SELECTED.position.x == objects[0].position.x) {
thisObject = i;
}
}
}
var intersects = ray.intersectObject(plane);
container.style.cursor = 'pointer';
}
}
मैं इस समस्या तय कर लिया है तथ्य (परिणत जाल के रूप में) है कि हिरण की स्थिति से संबंधित होना चाहिए कभी नहीं बदलता है, तथापि शिखर दूर चले जाते हैं, और जैसा कि किरण छेड़छाड़ करता है कॉम है ऑब्जेक्ट की स्थिति को पार करना शायद समस्या यहां है?
की पूर्ण सीमा तक शामिल करने के लिए कोड लिखा है आप प्रदान की जरूरत है कि कृपया – Ocelot
कोड जोड़ा :) धन्यवाद। – Ian