【发布时间】:2017-01-01 02:57:19
【问题描述】:
我刚开始使用 three.js 制作基本动画,需要一些帮助来绘制图形(框)的边缘。为此,我找到了一种在创建盒子时将 THREE.MeshBasicMaterial 的“线框”属性设置为“真”的方法。不幸的是,它对我不起作用,因为我不想显示盒子每个面的对角线。
然后我找到了一个替代方案,它使用了 THREE.EdgesHelper 类,它可以根据需要显示边缘,但我还有另一个问题。
问题是我需要改变一些盒子的面的位置,并保持边缘随着这些变化而更新,但边缘不会这样做。
const cubeWidth = 3;
const geometry = new THREE.BoxGeometry(cubeWidth, cubeWidth, 20);
const material = new THREE.MeshBasicMaterial({ vertexColors: THREE.VertexColors });
const cube = new THREE.Mesh(geometry, material);
const edge = new THREE.EdgesHelper(cube, 0x000000);
然后我在渲染函数上更新每个框的正面:
cubes.forEach(function(cube) {
const geometry = cube.children[0].geometry;
geometry.vertices.forEach(function(v) {
if(v.z > 0) v.x -= 3;
});
geometry.verticesNeedUpdate = true;
});
我做了一个显示问题的 jsfiddle:https://jsfiddle.net/mauro98/wf20tmhu/139/
你能给我一些关于如何执行我想要的建议吗? 我一直在寻找解决方案,但还没有找到。
非常感谢。
【问题讨论】:
标签: javascript three.js wireframe