假设我有一个简单的立方体和一些指定其宽度,高度和深度的变量。
当w / h / d发生变化时,如何更新我的THREE网格? (我还有其他一些像changelisteners等)。我是否直接更新顶点?或者重新绘制所有内容更容易?
答案 0 :(得分:5)
我认为最简单的方法是创建一个单位尺寸(1x1x1)的立方体。然后通过缩放来设置尺寸:
mesh.scale.x = width;
mesh.scale.y = height;
mesh.scale.z = depth;
实际上不确定网格是否支持缩放,否则,您可以将其包装在Object3D
中var obj = new THREE.Object3D();
obj.add(mesh);
obj.scale.x = width;
obj.scale.y = height;
obj.scale.z = depth;
没有什么可以阻止你直接修改顶点。在这种情况下,我认为您需要指定geometry.dynamic=true;
然后指定geometry.verticesNeedUpdate=true;
。