three.js - 修改 THREE.BufferGeometry 对象中的顶点

标签 three.js

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

我的第一次尝试制作了一个 THREE.Geometry,每个都有一个名字。为了隐藏/显示,我根据名称和我的启发式遍历场景并隐藏/显示每个场景。这看起来很慢 - 大约 1000 行的 50Hz 左右。

我使用类似的方法进行了测试,但仅使用一个 THREE.Geometry 来保存所有线条。那当然要快得多,但我只能将一种 Material 应用于所有线条,这是不好的。我能够在应用程序运行时设置正确的标志并更新行的位置。

最好的方法似乎是使用 THREE.BufferGeometry。我做了一个非常快的测试,并且在初始设置时按预期工作,但之后我无法更改每条线的位置/可见性和颜色。我做了一个 JS fiddle 来说明它 - http://jsfiddle.net/SSnKk/ - 但打电话 buffer_geometry.dynamic = true;buffer_geometry.verticesNeedUpdate = true;似乎没有帮助。

最佳答案

你需要打电话

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

更新 fiddle :jsfiddle.net/hjx3rLmt/1

三.js r.76

关于three.js - 修改 THREE.BufferGeometry 对象中的顶点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16804705/

相关文章:

javascript - 三.js : JSONLoader + loadAjaxJSON

javascript - THREE.js生成UV坐标

javascript - 在 ThreeJS 中更新纹理贴图

javascript - 如何在 Three.js 中的 360 全景图像中添加 div 元素或热点?

canvas - Three.js 中的纹理形状拉伸(stretch)

three.js - 如何在 TypeScript 中使用 three.js 加载 OBJ 模型

javascript - 未捕获的类型错误 : Cannot redefine property: rotation

javascript - Three.js不显示任何内容

javascript - 在 three.js 中挤出一条线

javascript - Three.js - 在 JSON 对象上显示图像