如何在THREE.JS中创建可调整大小的对象

jor*_*nfb 2 webgl three.js

假设我有一个简单的立方体和一些指定其宽度,高度和深度的变量.

当w/h/d改变时,如何更新我的THREE网格?(我还有其他一些像changelisteners等).我是否直接更新顶点?或者重新绘制一切更容易?

yak*_*aku 5

我认为最简单的方法是创建一个单位尺寸(1x1x1)的立方体.然后通过缩放来设置尺寸:

mesh.scale.x = width;
mesh.scale.y = height;
mesh.scale.z = depth;
Run Code Online (Sandbox Code Playgroud)

实际上不确定网格是否支持缩放,如果不支持,则可以将其包装在Object3D中

var obj = new THREE.Object3D();
    obj.add(mesh);
obj.scale.x = width;
obj.scale.y = height;
obj.scale.z = depth;
Run Code Online (Sandbox Code Playgroud)

没有什么可以阻止你直接修改顶点.我认为你需要指定geometry.dynamic=true;然后geometry.verticesNeedUpdate=true;在那种情况下.