Я пытаюсь сделать выбор с помощью щелчка и перетаскивания, чтобы выделить все видимые грани модели (аналогично тем, которые используются в программном обеспечении для 3D-моделирования, например, Blender).
Сначала я думаю об использовании линиипересечение, чтобы найти все закрытые лица в сцене: для каждого пикселя в области просмотра проведите линию в сцене и найдите первое пересечение.Тогда список окклюдированных лиц будет тем, который не пересекается.Но затем после экспериментов я понял, что этот метод очень медленный.
Я слышал о другом методе, который выглядит примерно так:
- Назначение уникального цвета для каждого примитива.
- Проецирование всех этих объектов на виртуальную плоскость совпадает с окном просмотра
- Из проецируемых пикселей, если цвета, соответствующие примитиву, отсутствуют, то он перекрывается.
проблема в том, что я понятия не имею, как создать такую «виртуальную» плоскость и в то же время не раскрывать ее конечному пользователю.Любая помощь или лучшая идея, чтобы решить эту проблему?