Problem mit
OpenGL ist, dass man das Polygon erst mal in Dreiecke zerlegen muss. Das ist im allgemeinen gar nicht so einfach, vor allem wenn das Polygon sich auch selbst schneiden kann (bzw. Löcher haben kann) und der Algorithmus effizient sein soll. Hatte mir dazu vor ein paar Jahren auch mal Gedanken gemacht, ist aber letztlich im Sande verlaufen.
Ob
DirectX irgendwelche Funktionen dafür mitbringt, weiß ich nicht.