Отображение физических ребер в тройках - PullRequest
0 голосов
/ 31 октября 2019

Я хочу отобразить только физические края и плоские грани объектов Threejs в моей сцене. По сути, черно-белый вид с реалистичным обнаружением краев.

Потенциальные подходы, которые я нашел в Интернете, включают:

  1. Визуализация каркасного представления
  2. Визуализациявнешние края каждой грани с помощью «EdgesGeometry»
  3. Визуализация EdgesGeometry вместе с гранями для окклюзии объектов на заднем плане

Вариант 3 - самый близкий к тому, что я хочу, но это нене генерировать новое ребро для внутренних пересечений между двумя объектами. Кроме того, он по-прежнему включает в себя все грани лица внутри круглого объекта (например, спицы колеса);Я просто хочу внешний круг (как обычный диск). Наконец, я сталкиваюсь с проблемами, когда два объекта «плавно пересекаются», как две стены одинаковой высоты, встречающиеся в углу. В этом примере я хочу видеть гладкую форму "L", без разделительной кромки между соединением двух стен.

Любая помощь будет принята с благодарностью!

затененная сцена длясцена физического края

Заключительные соображения (потому что детали имеют значение!):

  • Мой образец изображения показывает цветные фигуры. Моя РЕАЛЬНАЯ ситуация такова, что все объекты импортируются как плоские и серые. Поэтому попытка использования цветового градиента для обнаружения изменений краев не сработает.
  • В моей сцене также есть много мелких деталей, которые сильно смещаются и зазубриваются при использовании подхода карты нормалей и глубины (который обнаруживаеткрая в фрагментном шейдере, когда есть заметные различия между фрагментами). Включение «настоящих» краев значительно уменьшает это наложение, но, как я уже сказал, оно добавляет дополнительные ребра, которые я не хочу видеть.

Спасибо!

...