【问题标题】:Extract animation vertices提取动画顶点
【发布时间】:2019-02-09 01:45:33
【问题描述】:

我有一个使用 GLTFLoader 加载的对象和一个使用 THREE.AnimationMixer 的动画。我知道我可以通过在网格几何体上使用.fromBufferGeometry().vertices 来获取对象的顶点。如何在动画期间获取所有顶点并查看它们随时间的变化? KeyframeTrack 似乎没有直接修改几何图形。

【问题讨论】:

    标签: three.js


    【解决方案1】:

    我知道我可以通过在网格几何体上使用 .fromBufferGeometry().vertices 来获取对象的顶点。

    没有必要将您的几何图形转换为Geometry(它将在某个时候从库中删除)。相反,您可以通过使用相应的缓冲区属性来访问顶点信息。有关BufferGeometry 的文档页面提供了有关此主题的更多详细信息。

    如何在动画期间获取所有顶点并查看它们随时间的变化?

    在使用骨骼动画或变形目标动画等动画技术时,重要的是要意识到实际的顶点位移发生在顶点着色器 (GPU) 中。如果出于某些原因需要在 JavaScript 代码 (CPU) 中转换顶点,则必须手动执行相应的顶点置换。目前没有库功能可以为您执行此操作。但是您可能会在 forum 或 github 上找到一些代码示例。

    【讨论】:

    • 我对缓冲区属性还不太熟悉,因此将其转换为几何图形更容易。我从iamnop.com/particles 得到了问题的想法。你知道他是如何让粒子形成这些动画的吗?
    • 不幸的是我没有时间研究这个应用程序,但看起来大部分动画都是在 GPU 上完成的。实际上有一个官方的 GPU 粒子系统示例可能对您有用。代码更简洁,使用了最新版本的three.js,所以应该比较容易熟悉:threejs.org/examples/webgl_gpu_particle_system.html
    猜你喜欢
    • 2013-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 1970-01-01
    • 2019-12-11
    • 1970-01-01
    相关资源
    最近更新 更多