Алгоритм маскировки прямоугольника на вершинах (для рендеринга OpenGL)

У нас есть массив вершин, массив индексов вершин и прямоугольник. Каждые три индекса образуют треугольник, который нужно нарисовать. Прямоугольник — это маска / граница, которую нельзя нарисовать снаружи. Хотя некоторые из треугольников могут быть снаружи / перекрывать прямоугольник.

Кто-нибудь знает (быстрый) алгоритм (или реализацию алгоритма на C / C ++), который может преобразовывать / заново создавать массив треугольников и индексов в соответствии с маскирующим прямоугольником?

Треугольники, не перекрывающие друг друга, и внутри прямоугольника должны быть просто оставлены, как они есть, треугольники, перекрывающие друг друга, должны быть вырезаны, и внутренние части должны остаться, и треугольники, полностью находящиеся снаружи, также должны быть удалены.

0

Решение

Есть хороший алгоритм: Сазерленд-Ходжман. Узнайте больше на https://en.wikipedia.org/wiki/Sutherland%E2%80%93Hodgman_algorithm

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]