Я только начал использовать 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/< /а>
Не могли бы вы дать мне какие-либо предложения о том, как выполнить то, что я хочу? Я искал решение, но пока не нашел.
Большое Вам спасибо.