Точка дерева BSP на плоскости для операций CSG

У меня есть дерево BSP, которое я использую, и оно действительно хорошо работает для множества вещей, включая операции CSG. Один сценарий, который продолжает появляться и до недавнего времени не был проблемой, это сценарий точки / треугольника на плоскости полупространства другого. В документации по большинству деревьев BSP описывается построение узлов с внутренними и внешними дочерними элементами и построение таким образом, но в действительности ничего не сказано о ситуации "точки на плоскости". В настоящее время для построения я предполагаю, что точки на плоскости находятся "внутри", что хорошо работает и означает, что мне не нужно разбивать треугольник, однако часть операций CSG включает в себя объединение двух разных сеток, и это создает проблему для точки на сценарии самолета. В настоящее время я реализовал методы для принятия флага onPlaneIsInside, который позволяет мне решать проблемы с этим слиянием. Однако, в зависимости от данных этого недостаточно, и это заставляет меня думать, что мне нужно разделить плоские треугольники и провести повторную разбивку, чтобы получить точные границы вместе с сетками CSGing.

Мой вопрос о лучшей практике для этой ситуации? Я думаю, что разделение плоских треугольников и сохранение только внутри / снаружи дочерних узлов, возможно, то, что нужно сделать, однако есть ли смысл в добавлении еще одного дочернего узла "onPlane". Поскольку это не описано ни в одной литературе по BSP, это хорошая идея? Я не могу найти никаких описаний, которые делают это, это заставляет меня думать, что это плохая идея, и я должен просто продолжать расщеплять плоские треугольники соответственно и размещать точки на плоскости как "внутренние" дочерние узлы.

Большое спасибо.

[РЕДАКТИРОВАТЬ:] Я думаю, ключ к названию? Есть ли эквивалент для 3 дочерних узлов, внутри / снаружи / на плоскости?

0 ответов

Другие вопросы по тегам