Updating a geometry inside a mesh does nothing

前端 未结 2 1822
Happy的楠姐
Happy的楠姐 2020-12-05 15:30

I am using THREE.JS rev 49.

My program needs to update a mesh by changing it\'s geometry. Unfortunately the display does not seem to update.

Here is my code

相关标签:
2条回答
  • 2020-12-05 16:12

    When changing the entire geometry, I think the easiest way is to remove the old one (scene.remove(geometry), then add the new one (scene.add(geometry)). I think the cost of modifying the mesh and geometry parameters and properties is the same as adding a new one, although adding is much easier and saves a lot of headache!

    0 讨论(0)
  • 2020-12-05 16:17

    If I understood correctly you are updating vertices here:

    else{
            theObjects[i].mesh.geometry.vertices = theObjects[i].geo.vertices;  
    }
    

    Try to change this code to :

    else{
             theObjects[i].mesh.geometry.dynamic = true;
             theObjects[i].mesh.geometry.vertices = theObjects[i].geo.vertices;  
             theObjects[i].mesh.geometry.verticesNeedUpdate = true;
        }
    

    In if(){} you create a mesh and in else{} you update so dynamic = true and verticesNeedUpdate = true you need to set to mesh which is in else{}.

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