Wie Polygon Anti-Aliasing zur Arbeit zu kommen?
-
19-09-2019 - |
Frage
Ich benutze diese Funktion aufruft:
glEnable(GL_BLEND)
glEnable(GL_POLYGON_SMOOTH)
glBlendFunc(GL_SRC_ALPHA_SATURATE, GL_ONE)
Es funktioniert nicht und wird nicht übertragen.
glEnable(GL_BLEND)
glEnable(GL_POLYGON_SMOOTH)
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
Es ist nicht anti-alias.
Lösung
Versuchen glHint(GL_POLYGON_SMOOTH_HINT, GL_NICEST)
Andere Tipps
Dies ist eine banale Antwort .. aber wenn Sie abgerundete Ecken wollen, werden Sie wahrscheinlich mehr mehr Scheitelpunkte an den Ecken verwenden wollen, und sie für eine rundere Form zu platzieren. Sie könnten auch prozedural dies in tun aussehen .. aber wenn Sie ein Spiel tun, und Sie wollen, um es zu beenden, würde ich in der Regel empfehlen, dass Sie die endgültige Vertexposition in den Daten haben (es sei denn, Sie einen zwingenden Grund zu machen es dynamisch).
Alternativ können Sie eine Textur mit einem abgerundeten Auftritt in der Nähe der Ecken verwenden. Dies wird nach und nach immer weniger beliebt als Video-Hardware leistungsfähiger wird, ist aber noch sehr effektiv.