假设我有一个简单的立方体和一些指定其宽度、高度和深度的变量。
当 w/h/d 发生变化时,如何更新我的三个网格? (我还有其他一切,比如变更监听器等)。我直接更新顶点吗?还是重新绘制所有内容更容易?
最佳答案
我认为最简单的方法是创建具有 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;
在这种情况下。
关于three.js - 如何在 THREE.JS 中创建可调整大小的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14524348/