我需要有选择地显示/隐藏1000多行不同大小,位置和颜色。
我的第一次尝试制作了一个THREE.Geometry,每个都有一个名字。隐藏/显示我迭代场景并隐藏/显示每个基于名称和我的启发式。这似乎非常慢 - 大约50Hz,大约1000行。
我使用类似的方法进行了测试,但只使用一个THREE.Geometry来保存所有的线条。那要快得多,但当然我只能将一种材料应用到所有不合适的线上。我可以设置正确的标志,并在应用程序运行时更新行的位置。
最好的方法似乎是使用THREE.BufferGeometry。我做了一个非常快速的测试,并按照预期的方式进行初始设置,但之后我无法改变每一行的位置/可见度和颜色。我做了一个JS小提琴来说明它 - http://jsfiddle.net/SSnKk/ - 但是调用buffer_geometry.dynamic = true;
和buffer_geometry.verticesNeedUpdate = true;
似乎没有帮助。
答案 0 :(得分:13)
您需要致电
buffer_geometry.attributes.position.needsUpdate = true;
buffer_geometry.attributes.color.needsUpdate = true;
更新了小提琴:jsfiddle.net/hjx3rLmt/1
three.js r.76