1. 首页
  2. three.js

three.js是否可以在不创建新几何体的情况下覆盖InstancedBufferAttribute?

three.jsn有没有办法在不创建新几何体的情况下覆盖属性?是的,我意识到首选的方法是只创建一个“足够大”的属性缓冲区,而不是更新属性的内容,但在我的情况下,这是不可取的,因为在运行时实例的数量不同。在我的案例中,实例的数量可能非常大,我不希望实例数量少的案例需要将如此多的数据上传到GPU。我更愿意用一个新属性覆盖现有属性。这当然可以通过从头开始重新创建整个BufferGeometry来实现,但是如果不需要的话,我不想再次上传所有的BufferGeometry。由Mugen87在post#2中解决了查看分配新的BufferAttribute数组的成本有多高?-#5 by Mugen87n查看分配新的BufferAttribute数组的成本有多高?-#5 by Mugen87 10n你必须在一次抽签中呈现所有内容吗?你为什么不做10个同样大小的缓冲区呢?还是以指数方式增加尺寸?n谢谢你的帮助,是的,我将在重新创建缓冲区时实现动态指数增长。尝试管理实例会有点混乱(因为并非所有实例都会呈现),但应该完成这项工作。我想我必须在属性中的数据周围移动n Is it possible to overwrite an InstancedBufferAttribute without creating a new geometry?n

three.js是否可以在不创建新几何体的情况下覆盖InstancedBufferAttribute? 为WP2原创文章,链接:https://www.wp2.cn/three-js/three-js%e6%98%af%e5%90%a6%e5%8f%af%e4%bb%a5%e5%9c%a8%e4%b8%8d%e5%88%9b%e5%bb%ba%e6%96%b0%e5%87%a0%e4%bd%95%e4%bd%93%e7%9a%84%e6%83%85%e5%86%b5%e4%b8%8b%e8%a6%86%e7%9b%96instancedbufferattribute/