修改THREE.BufferGeometry对象中的顶点

时间:2013-05-29 02:49:57

标签: three.js

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

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

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

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

1 个答案:

答案 0 :(得分:13)

您需要致电

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

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

three.js r.76