Как выполнить выбор поверхности в threejs

Для моего проекта мне нужно выбрать область (набор треугольников) и при наведении мыши изменить цвет. В качестве входных данных у меня есть список площадей и набор идентификаторов треугольников. Я использую индексированную буферную геометрию. Я также установил атрибут цвета, чтобы изменить цвета лица. введите здесь описание изображения

Красное поле — это моя целевая область, но когда я меняю все цвета этой вершины, это влияет на другого соседа. В чем может быть причина?

ОТРЕДАКТИРОВАНО

Теперь я использую неиндексированную буферную геометрию. Я не думаю, что раскраска вершин немного странная, как на этом изображении ниже. введите здесь описание изображения

Могу ли я использовать геометрию.groups для разделения одной поверхности, чтобы сопоставить ее с одним материалом?

РЕШЕНО

Результат связан с моей ошибкой, потому что я не думал, что массив цветов является значением rgb для каждой вершины.


person Valimo Ral    schedule 20.12.2018    source источник
comment
Вы делите вершины. Вам нужно использовать неиндексированный BufferGeometry (также известный как треугольный суп), чтобы каждый треугольник был отделен от своих соседей.   -  person WestLangley    schedule 21.12.2018
comment
см. этот ответ для объяснения, если это необходимо: stackoverflow.com/questions/42141438/   -  person Martin Schuhfuß    schedule 21.12.2018
comment
У меня есть ограничение на использование индексированной геометрии. Но могу ли я получить целевые треугольники и отрисовать их отдельно?   -  person Valimo Ral    schedule 21.12.2018