2012-10-08 77 views
0

我在拾取實施時遇到問題。我發現了許多不同的示例正在做我想做的事情,但我確實無法按照它應有的工作。我主要遵循this exampleThree.js揀配對於自定義幾何圖形無法正常工作

基本上,我在我的場景中有一些網格,並雙擊其中的任何一個,我想要改變所選的顏色。在場景中,總有3個小立方體被選中,而一些更復雜的網格往往不是。我想知道是否有人可以幫我弄清楚爲什麼,如果可以選擇立方體,其他人卻不能。

我用於檢測點擊網中的代碼是:

var projector = new THREE.Projector(); 

var vector = new THREE.Vector3((event.clientX/window.innerWidth) * 2 - 1, - (event.clientY/window.innerHeight) * 2 + 1, 0.5); 

projector.unprojectVector(vector, camera); 

var ray = new THREE.Ray(camera.position, vector.subSelf(camera.position).normalize()); 

var intersects = ray.intersectObjects(scene.children, true); 

if (intersects.length > 0) 
{ 
    intersects[ 0 ].object.material.color.setHex(Math.random() * 0xffffff); 
} 

回答

1

ray.intersectObject(),這是由稱爲ray.intersectObjects(),需要面的質心。

mesh.geometry.computeCentroids(); 

這對於創建自己的自定義幾何圖形非常重要。

three.js r.51

+0

非常感謝,現在它的工作完美。 – aleGrazioli

+0

mesh.geometry.computeCentroids(),我應該在哪寫這段代碼?同時創建幾何圖形或投射光線? 我的錐體自定義幾何體:http://jsfiddle.net/suvKg/12/請幫助我 –

+1

@webGLnoobie ...創建幾何體時...但是,three.js r.54現在使用'Raycaster',並且它不再需要臉部質心。 – WestLangley

相關問題