【问题标题】:Modify vertices in a THREE.BufferGeometry object修改 THREE.BufferGeometry 对象中的顶点
【发布时间】:2013-05-29 02:49:56
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: three.js


    【解决方案1】:

    你需要打电话

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

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

    three.js r.76

    【讨论】:

    • 接下来 - 我想让线条从原点开始。当我更改开始位置时,我看不到我所期望的。是否可以在任意位置使用带有一组线的缓冲区几何?此处示例:jsfiddle.net/9nVqU
    • 请用您的新问题发一个新帖子。
    • API 与上述相比略有变化。这个修改过的小提琴在撰写本文时有效:jsfiddle.net/hjx3rLmt/1
    • @AndrewE 谢谢。更新了答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 2018-04-03
    • 1970-01-01
    • 2014-06-12
    • 1970-01-01
    相关资源
    最近更新 更多