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

标签 three.js webgl

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

当 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/

相关文章:

javascript - 如何在 Three.js 中比较像素

javascript - 如何通过GLSL在THREE.js中实现MeshNormalMaterial?

javascript - Three.js 中的强光 Material 混合模式?

javascript - three.js 如何缓存(本地存储)3d 模型和纹理?

Three.js 将纹理设置为内联 svg

javascript - Three.js改变网格纹理改变了整个模型

javascript - 错误 : WebGL: Exceeded 16 live WebGL contexts for this principal, 丢失最近最少使用的一个

javascript - 网格上的三个 JS 多种 Material 和着色器

javascript - 使用 THREE.OBJLoader 渲染 OBJ 文件

javascript - WebGL 从缓冲区中删除对象