2013-05-29 41 views
7

我需要選擇性地顯示/隱藏1000多行不同大小,位置和顏色的行。修改THREE.BufferGeometry對象中的頂點

我第一次嘗試做了THREE.Geometry,每個名稱都有一個名字。隱藏/顯示我遍歷場景,隱藏/顯示每個基於名稱和我的啓發式。這看起來非常慢 - 約1000線約50Hz。

我做了一個測試,使用類似的方法,但只使用一個THREE.Geometry來保存所有的行。雖然速度要快得多,但是我只能將一種材料應用於所有不合適的線條。我可以設置正確的標誌,並在應用程序運行時更新行的位置。

最好的辦法似乎是使用THREE.BufferGeometry。我做了一個測試,測試速度非常快,並且在初始設置時按預期工作,但之後我無法改變每條線的位置/可視性和顏色。我做了一個JS小提琴,說明它 - http://jsfiddle.net/SSnKk/ - 但呼籲buffer_geometry.dynamic = true;buffer_geometry.verticesNeedUpdate = true;似乎沒有幫助。

回答

11

你需要調用

buffer_geometry.attributes.position.needsUpdate = true; 
buffer_geometry.attributes.color.needsUpdate = true; 

更新小提琴:jsfiddle.net/hjx3rLmt/1

three.js所r.76

+0

,完美的工作 - 謝謝西方蘭利。 – speedwell

+0

繼續從那裏 - 我想有線開始遠離原點。當我改變起始位置時,我看不到我期望的。是否可以在任意位置使用帶有一組線的緩衝區幾何?示例:http://jsfiddle.net/9nVqU/ – speedwell

+0

請用你的新問題發表一個新帖子。 – WestLangley