Пройдя поиск некоторое время, я нашел способ проверить это. Это делается с помощью «отбраковки задней поверхности», и, насколько я понимаю, вы сначала вычисляете 2-мерные позиции многоугольника, затем берете 3 точки и сравниваете их, чтобы определить, каким образом полигон обращен.
чек, который я использовал, выглядит следующим образом:
ifVisible = function(p1, p2, p3)
{
return ((p2[0]-p1[0])*(p3[1]-p1[1])>(p3[0]-p1[0])*(p2[1]-p1[1]));
}
где p1, p2 и p3 - массивы, содержащие положения точек x и y.
Это работает, только если у вас есть порядок для точек в ваших многоугольниках (в моем случае позиции по часовой стрелке, если смотреть на камеру)