три js обновление трубегеометрии не видно r100 - PullRequest
1 голос
/ 22 марта 2019

У меня есть функция, которая генерирует новую трубу каждый кадр после движения сетки. Функция, которая выполняет обновление трубки, выглядит следующим образом:

function UpdateKettingMeshes(kettingMeshes, kraalElements, kettingCurvesArray, kettingShapeArray) {
    for (let i = 0; i < kettingMeshes.length; i++) {
        const element = kettingMeshes[i];
        const elCurve = kettingCurvesArray[i];
        const elShape = kettingShapeArray[i];
        elCurve.v0.copy(kraalElements[i].kraal.position.clone());
        elCurve.v1.copy(kraalElements[i].kraal.position.clone().add(elShape.controlPointDirection1.clone().multiplyScalar(elShape.controlPointPower1)));
        elCurve.v2.copy(kraalElements[i + 1].kraal.position.clone().add(elShape.controlPointDirection2.clone().multiplyScalar(elShape.controlPointPower2)));
        elCurve.v3.copy(kraalElements[i + 1].kraal.position.clone());
        const geometry = new THREE.TubeGeometry( elCurve, 80, 1.2, 8, false );
        element.geometry.vertices = geometry.vertices;
        element.geometry.verticesNeedUpdate = true;
    }

    return kettingMeshes;
}

Я вызываю эту функцию каждый кадр так:

kettingMeshData = UpdateKettingMeshes(kettingMeshData, kralenObjects, kettingCurveData, kettingShapeData);

это работает нормально, без ошибок, и когда я console.log kettingMeshData и проверяю, обновлены ли вершины, я вижу, что в этом случае см. Изображения ниже:

предыдущий кадр: enter image description here текущий кадр: enter image description here

Но проблема в том, что реальная сетка не меняется в сцене? почему не обновляется?

примечание: все трубки расположены в тройной группе ().

если что-то не понятно, дайте мне знать, чтобы я мог уточнить!

...