【发布时间】:2019-02-09 01:45:33
【问题描述】:
我有一个使用 GLTFLoader 加载的对象和一个使用 THREE.AnimationMixer 的动画。我知道我可以通过在网格几何体上使用.fromBufferGeometry().vertices 来获取对象的顶点。如何在动画期间获取所有顶点并查看它们随时间的变化? KeyframeTrack 似乎没有直接修改几何图形。
【问题讨论】:
标签: three.js
我有一个使用 GLTFLoader 加载的对象和一个使用 THREE.AnimationMixer 的动画。我知道我可以通过在网格几何体上使用.fromBufferGeometry().vertices 来获取对象的顶点。如何在动画期间获取所有顶点并查看它们随时间的变化? KeyframeTrack 似乎没有直接修改几何图形。
【问题讨论】:
标签: three.js
我知道我可以通过在网格几何体上使用 .fromBufferGeometry().vertices 来获取对象的顶点。
没有必要将您的几何图形转换为Geometry(它将在某个时候从库中删除)。相反,您可以通过使用相应的缓冲区属性来访问顶点信息。有关BufferGeometry 的文档页面提供了有关此主题的更多详细信息。
如何在动画期间获取所有顶点并查看它们随时间的变化?
在使用骨骼动画或变形目标动画等动画技术时,重要的是要意识到实际的顶点位移发生在顶点着色器 (GPU) 中。如果出于某些原因需要在 JavaScript 代码 (CPU) 中转换顶点,则必须手动执行相应的顶点置换。目前没有库功能可以为您执行此操作。但是您可能会在 forum 或 github 上找到一些代码示例。
【讨论】:
three.js,所以应该比较容易熟悉:threejs.org/examples/webgl_gpu_particle_system.html