Зависит от типа полигона.
Если ваши многоугольники выпуклые, то упорядоченный список вершин будет описывать одну и обе разделяющие оси и GJK будут применимыми алгоритмами.
Если ваши многоугольники вогнуты, но просты (т. Е. Ребра никогда не пересекаются), тогда упорядоченный список вершин все еще достаточен, но ни подходящая разделяющая ось, ни GJK не подходят.
Если ваши полигоны сложны (т. Е. Ребра могут пересекаться), тогда вам понадобится список вершин и правило заполнения. Правило установило, какие части плоскости считаются находящимися внутри многоугольника, а какие - внешними.
Например, представьте многоугольник как пентаграмму:
Разница в правилах заполнения заключается в том, является ли пятистороннее отверстие в середине частью многоугольника или просто отверстием.
Все более сложные типы многоугольников можно разбить на несколько экземпляров более простых типов многоугольников, поэтому вполне нормально просто поставить флаг на землю и объявить, что тебя интересуют только выпуклые многоугольники - это точно например, что делают графические процессоры.
Предполагая, что вы определяете столкновения как простое перекрытие двух полигонов или нет, теорема о разделении осей очень проста и определенно поможет. Если вы планируете создать сцену с большим количеством полигонов, то вам, вероятно, также понадобится широкая фаза, которая является быстрым способом пометить целую группу полигонов как определенно не перекрывающихся перед тем, как выполнить дорогостоящий тест, чтобы выяснить, какие из остальных все еще есть.
Очевидным примером является сортировка бина - предположим, что вы разбили экран на 16-пиксельные вертикальные полосы, а затем для каждого многоугольника вы можете (i) определить, какие ячейки касаются его; (ii) проверить его на наличие всех полигонов, уже находящихся в этих корзинах; (iii) добавить его в контейнеры. Это, вероятно, означало бы, что вы даже не рассматриваете возможность применения теста довольно много времени. Эта конкретная схема имеет некоторые очевидные проблемы, в зависимости от вашей сцены, но существуют более умные алгоритмы.