Помните, что при рендеринге ngon в OpenGL это просто целая куча треугольников. Кроме того, вы принимаете некоторую форму и пытаетесь отобразить ее в прямоугольнике, поэтому вам нужно быть крайне критичным в отношении того, как вы хотите это сделать, поскольку существует множество различных отображений, переходящих из любой формы в прямоугольную текстуру.
Например, если у меня есть 5-угольник, имеющий форму квадрата с точкой между двумя углами, его легко сопоставить с текстурой. Что происходит, когда я обращаю на это внимание? Меняются ли координаты текстуры при перемещении вершин?
Один из способов сделать это - отобразить окружность нгона на окружность прямоугольника, где расстояние, пройденное от вершины до вершины нгона, отображается в координату UV по окружности текстуры. Например, на 1/4 пути вокруг него, дайте ему UV координату (1,0), на половине пути вокруг ngon, дайте вершине UV координату (1,1) и 3/4 пути вокруг него дайте ему UV (0,1) - вам, конечно, нужно будет интерполировать между точками, так как нгон не будет идеально выстраиваться в каждой вершине.