首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将TubeBufferGeometry的内容替换为原地的新TubeBufferGeometry,不进行分配

将TubeBufferGeometry的内容替换为原地的新TubeBufferGeometry,不进行分配
EN

Stack Overflow用户
提问于 2021-01-14 00:11:56
回答 1查看 32关注 0票数 0

我有一个几何形状为TubeBufferGeometry的网格。动画周期的每一帧,TubeBufferGeometry的路径都会改变(路径将由运行时提供的值决定),所以我想用新的TubeBufferGeometry更新每一帧的几何体。当然,我可以像这样更新网格的几何形状:

代码语言:javascript
复制
mesh.geometry.dispose()
mesh.geometry = new THREE.TubeBufferGeometry(newPath, params)

但这是浪费的,因为它需要为每一帧分配一个全新的BufferGeometry。理想情况下,我可以简单地给TubeBufferGeometry构造函数一个现有的几何图形来覆盖,而不是分配一个全新的几何图形,而不是将其内容写入该几何图形的缓冲区中。如下所示:

代码语言:javascript
复制
THREE.TubeBufferGeometry.overwrite(mesh.geometry, newPath, params)

(因为它们使用相同的params,所以旧几何体的缓冲区将足够大,以存储新几何体。)

这样的事情有可能发生吗?让TubeBufferGeometry为我计算顶点位置比手工计算要方便得多,但我只需要一种方法来让它在现有的缓冲区中计算它们,而不是每帧分配一个新的。

EN

回答 1

Stack Overflow用户

发布于 2021-01-14 01:48:50

three.js的几何图形生成器用于一次性创建几何图形。它们不打算在每帧中使用它们来设置网格结构的动画。

即使没有分配新的缓冲区,这种方法通常也是浪费的。您应该考虑在Blender中将动画作为变形目标动画进行创作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65705681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档