如何更新BufferGeometry的顶点?

Posted Again

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何更新BufferGeometry的顶点?相关的知识,希望对你有一定的参考价值。

话不多说,直接上代码。new 出来的Mesh的材质最好设置side的属性为DoubleSide。否则移动过程中可能是展示反面而导致视觉上看不到Mesh

/**
   *
   * @param {*} mesh 更新的Mesh
   * @param {*} points 新的顶点数组
   * @returns
   */
  static updateBufferGeometry(mesh, points) {
    if (points.some(ele => !ele || isNaN(ele.x) || isNaN(ele.y))) {
      return;
    }
    let vertices = [];
    // itemSize = 3 因为每个顶点都是一个三元组。
    points.forEach((point) => {
      vertices.push(point.x, point.y, point.z || 0);
    });
    vertices = new Float32Array(vertices);
    mesh.geometry.setAttribute(\'position\', new THREE.BufferAttribute(vertices, 3));
  }

如果遇到问题可以找我

以上是关于如何更新BufferGeometry的顶点?的主要内容,如果未能解决你的问题,请参考以下文章

THREE.BufferGeometry - 顶点法线和面法线

如何快速更新大的BufferGeometry?

使用 bufferGeometry 获取 THREE.js Points 对象中顶点的屏幕坐标

Three.js索引BufferGeometry与InstancedBufferGeometry

Three.js教程:顶点索引复用顶点数据

将几何转换为 BufferGeometry