修改THREE.BufferGeometry对象中的顶点

spe*_*ell 7 three.js

我需要有选择地显示/隐藏1000多行不同大小,位置和颜色.

我的第一次尝试制作了一个THREE.Geometry,每个都有一个名字.隐藏/显示我迭代场景并隐藏/显示每个基于名称和我的启发式.这看起来非常慢 - 大约50Hz,大约1000线.

我使用类似的方法进行了测试,但只使用一个THREE.Geometry来保存所有的线条.那要快得多,但当然我只能将一种材料应用到所有不合适的线上.我可以在应用程序运行时设置正确的标志并更新行的位置.

最好的方法似乎是使用THREE.BufferGeometry.我做了一个非常快速的测试,并按照预期的方式进行了初始设置,但之后我无法改变每一行的位置/可见度和颜色.我做了一个JS提琴,说明它- http://jsfiddle.net/SSnKk/ -但调用buffer_geometry.dynamic = true;buffer_geometry.verticesNeedUpdate = true;没有出现,以帮助.

Wes*_*ley 13

你需要打电话

buffer_geometry.attributes.position.needsUpdate = true;
buffer_geometry.attributes.color.needsUpdate = true;
Run Code Online (Sandbox Code Playgroud)

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

three.js r.76