我想知道有什么方法可以更新加载的 jsonglb 文件的顶点。
我计划将每个顶点的位置设置为x,y,z位置。
据我所知,我只能从一个geometrybuffer中访问位置,但它不会有实际顶点的索引。
例如,我有一个数组,如下所示
array=[
{x:0,y:10,z,3},{x:0,y:10,z,3},{x:0,y:10,z,3}
]
现在,通过使用这个方法,我应该能够将glbjson的每个顶点按相同的索引顺序更新到各自的位置。
任何帮助在这是高度感激
用来加载模型的文件格式在这里并不重要--一旦它被加载,它就是一个模型的一部分。THREE.Scene
它可能包含一些Group、Object3D、Mesh和其他对象类型的混合。它可能有许多网格,所以你必须 "遍历 "场景层次结构,并更新任何你需要的网格。
比如说
model.traverse((object) => {
if (object.isMesh) {
// modify object.geometry here.
}
});
要了解如何修改网格,请看以下内容 网格 和 缓冲区几何学 文档。要更新第N个顶点的位置,你可以这样做。
object.geometry.attributes.position.setXYZ(n, x, y, z);
注意 position
属性存储了每个顶点的位置,并且是个 BufferAttribute 例如: