How to update vertices geometry after rotate or move object

前端 未结 2 1722
谎友^
谎友^ 2020-12-10 22:55

I can use position & rotation values to transform a mesh.

Ok, I see how the changes looks right but I\'d want a way to transform the geometry vertices x,y,z, fre

相关标签:
2条回答
  • 2020-12-10 23:13

    If you want to transform the vertices of your geometry, use this pattern:

    mesh.updateMatrix(); 
    mesh.geometry.applyMatrix( mesh.matrix );
    mesh.matrix.identity();
    

    Then reset the position, rotation, and scale properties to their initial values:

    mesh.position.set( 0, 0, 0 );
    mesh.rotation.set( 0, 0, 0 );
    mesh.scale.set( 1, 1, 1 );
    

    three.js r.85

    0 讨论(0)
  • 2020-12-10 23:22

    While building a ground mesh using a PlaneGeometry, adding hills using a heightmap and then getting some random vertices from the mesh geometry and adding trees after rotating the ground using

    ground_mesh.rotation.set(-Math.PI / 2, 0, 0);
    

    the mesh.geometry vertices aren't rotated along with the mesh and my trees are placed in pre-mesh-rotation positions. I found a quick and easy solution by instead rotating the mesh using

    ground_mesh.geometry.rotateX(-Math.PI / 2)
    

    and everything, including my gravity collision detection, and the random vertices all provide the expected results.

    The documentation mentions that rotateX shouldn't be used during the rendering loop.

    0 讨论(0)
提交回复
热议问题