假设我有一个简单的立方体和一些指定其宽度、高度和深度的变量。
当 w/h/d 发生变化时,如何更新我的三个网格?(我有其他的东西,比如 changelisteners 等)。我是否直接更新顶点?还是重绘所有内容更容易?
我认为最简单的方法是创建具有 1 个单位尺寸 (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;
在这种情况下。