【问题标题】:How to access single vertices of mesh loaded with GLTFLoader in Three.js如何访问在 Three.js 中使用 GLTFLoader 加载的网格的单个顶点
【发布时间】:2019-03-05 07:14:32
【问题描述】:

我正在 Three.js 中使用 GLTFLoader 加载一个 glb 文件: 在我使用 JSONLoader 之前。访问加载网格的顶点很容易:

meh.geometry.vertices

但是当查看使用 GLTFloader 加载的网格时,我就是找不到,顶点在哪里?

我需要为一些粒子动画操作每个顶点。

谢谢

【问题讨论】:

  • 您必须查看已加载对象的子对象。它们应该是THREE.Mesh()THREE.BufferGeometry(),因此它们的顶点存储在缓冲区属性中,例如object.geometry.attributes.position
  • 感谢您的快速回复。有没有办法将这个“位置”用作vector3?在我可以对单个顶点进行乘法、加法和减法之前。现在看来我必须首先将数组分成三组,然后从该分隔中创建一个vector3,然后乘法、加法、减法等,然后将值写回数组。我很确定,我在这里监督一些事情.. 对不起,如果这个问题很愚蠢:)
  • Vector3.fromBufferAttribute 是使用BufferAttribute 的一种有价值的方法。它会自动从给定的BufferAttribute 和索引中提取向量分量。一般来说,使用BufferGeometry 比使用Geometry 更难,但它是几何数据的更有效表示。使用它是值得的。
  • 完美,这就是解决方案!非常感谢!

标签: javascript three.js vertices


【解决方案1】:

使用 console.log(gltf)- 查看 JSON 文件,然后您会在场景中找到所有内容。要访问网格,请使用gltf.scene.traverse( function ( child ) {if ( child.isMesh ){ child.geometries.attributes...}}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-01
    • 2018-02-03
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 2022-01-19
    相关资源
    最近更新 更多