2015-06-26 14 views
0

我有一個組對象,裏面有一個PlaneBufferGeometry和一個wireframehelper,都添加到組中。 planebufferGeometry創建於0,0,0。Three.js wireframehelper組內壞定位

我用:

group.setposition(100,100,0) 

而且我看到planebuffer被放置在100,100,0。

但wireframehelper被放置在200,200,0? (它使用位置數據兩次?)

如果我將另一個對象放在組中,所有都可以,但wireframehelper始終放置錯誤。我錯過了什麼嗎?

+0

的'WireframeHelper'從它被分配給所以要根據您在創建它的對象獲取數據,當你渲染它,我可以看到的行爲成爲可能。 – gaitat

+0

@gaitac我認爲這是一個bug,你可以在jsfillde看到,第一組完成,第二組顯示錯誤。 wireframehelper不能正常工作http://jsfiddle.net/9g9wb2o5/1/。在創建github上的bug報告之前,我要等待任何意見 – civiltomain

+0

要使用fromBufferGeometry()也是一樣的...... – civiltomain

回答

1

WireframeHelper必須是現場的孩子。

這是編寫代碼的結果。考慮它是一個功能。

正迫使此問題的代碼是在THREE.WireframeHelper構造:

this.matrix = object.matrixWorld; 
this.matrixAutoUpdate = false; 

的好處是,如果你改變你的對象,或者你的對象的父,線框也會改變。

副作用是線框助手必須是場景的子節點。

three.js所r.71

+0

抱歉忘記接受。但是,我一直認爲它應該有一種方法來在具有正確和預期行爲的對象內部創建線框對象。另外,設置鏈接對象的可見性屬性不會隱藏線框幫助器。可能有一些解決這個問題嗎?我想象了很多帶有子元素的對象,需要用線框對象來顯示。所以...我們也有線框材質在緩衝區幾何圖形中無法正常工作的問題,所以我們必須使用線框對象,但是這個對象是'免費的'...希望理解我的帖子 – civiltomain

+0

'WireframeHelper'應該可以正常工作在r.72中用'BufferGeometry',但是,它不處理兒童。 – WestLangley

0

1)不需要將wireframehelper放入組中。只需將其添加到現場即可。 http://jsfiddle.net/9g9wb2o5/2/

scene.add(new THREE.WireframeHelper(mesh)); 

2)當你把wireframehelper組中,其建設的出發點是從該組的中心到世界座標轉移到你想要的wireframehelper的對象。也許這是一個錯誤,或者是一個相對論。

+0

分組方法不能破壞線框對象鏈接...線框幫助器必須顯示它鏈接的對象... – civiltomain