Как обновить дубликаты вершин в геометрии? Три js

#javascript #three.js

#javascript #three.js

Вопрос:

Я пытаюсь изменить положение вершин в моей сетке. Похоже, что три js хранят дубликаты вершин для каждой вершины. В моем случае у меня есть 4 дубликата, и я могу изменить только 1 с помощью mesh.geometry.vertices[i] . Когда я изменяю это значение, остаются три других дубликата. Я попытался использовать, mesh.geometry.mergeVertices(); это работает для geometry.vertices массива, и я получаю в нем в 4 раза меньше позиций. Но проблема все еще существует, и дубликаты не удаляются из реальной геометрии на экране. Итак, вопрос в том, как изменить положение вершины, например, для box и автоматически обновить все дубликаты. Вот несколько изображений отладки:массив вершин после mergeVertices(), фактический массив геометрии

Ответ №1:

Возможно, вам придется установить

 geometry.verticesNeedUpdate = true;
  

и, возможно

 geometry.elementsNeedUpdate = true;
  

после внесения изменений. Это указывает THREE повторно загрузить данные вершин в графический процессор.