1. Сравниваю нормаль вершины и вектор от камеры до вершины. При угле меньшем 90 точка видна.
2. Пишу в массив координаты видимых точек и расстояния от камеры до каждой из точек. Сортирую точки по расстоянию. И еще разбиваю на квадраты само изображение и для каждого нахожу ближайшую точку.
3. Теперь для ближайшей узнаю каким полигонам она принадлежит, они точно видимые. Получаю первый и стопицотый «островок видимости». Ставлю флаг обработанным вершинам. Выкидываю те вершины которые не обработались и попали в границы островков.
4. Анализирую полигоны имеющие в себе стопудово видимые вершины. После обхода каждого острова маркирую скрывшиеся вершины, и так пока все вершины не получат флаг видимости-невидимости.
А теперь расскажите как это делают нормальные люди
