GL_TRIANGLE oder GL_POLYGON



  • Hoi,

    Ich bin gerade dabei C++ und OpenGL ne kleine Engine zu schreiben.
    Momenatn hänge ich jedoch beim laden von Modellen fest.
    Ich habe folgedne Frage.

    Ist es schneller, wenn man GL_POLYGON für ein 7-Eck verwendet oder
    kann man auch einfach mehrere Triangles nehmen?
    Die gleiche Frage habe ich auch für GL_TRIANGLE und GL_TRIAGNLE_STRIP.
    Sind unterschiede vorhanden, oder ist es einfach nur dafür da, dass der Benutzer weniger schreiben muss.

    Frohe Weihnachten 🙂



  • Hallo,

    also beim Triangle wird ja ab dem 2. Dreieck ein Punkt weniger an Informationen benoetigt, das heisst, dass weniger Daten uebermittelt werden muessen, was die Sache rein theoretisch schneller macht.
    Aber ich bezweifle, dass hier dein Nadeloehr sein wird.
    Eher die Fuellrate.

    Bring es doch ersteinmal zum Laufen mit normalen Dreiecken und wenn es wirklich zu langsam sein sollte, kannst du es ja immer noch umschreiben...



  • @Seppschrott
    😞

    @Gnop
    Benutze die TriangleStrips, man kann alles damit darstellen und die Grafikkarten sind daraufhin optimiert TriStrips zu rendern. Je nach beschaffenheit zu unterscheiden ob Polygon oder Triangle etc... wäre unklug. Ich glaube nicht das normale Engines etwas anderes als TriStrips benutzen.

    Unterschied zu Triangle und TriStrip
    Bei Triangle musst du pro Dreieck 3 Vertices hochschicken und angeben, beim TriStrip sind das nur rund 2 pro Dreieck. Du sparst also Daten im Speicher, auf dem Weg über den AGP, auf der Grafikkarte, beim Processing. Alles in allem also ne ganz praktische Sache 🙂



  • Der unterschied zweischen Triangle und TriangleStrip ist auch noch die Formation von den einzehlen Vertices, der eigentlich Nachteil ist die Flexibletät, dazu kommt noch, dass die meisten Grafikkarte von dieser Generation lieber haben wenn man versucht zu viele Vertices wie es nur geht durch die Pipline jagd, also bringt das nichts wenn man zwei bis drei Vertices spart, es wieder bei einer geringen Anzahl sogar langsamer, da viele Draw-Calls gemacht werden müssen.

    MFG Lars



  • Deshalb kann man bei Tristrips ja leere Vertices einfügen um mehrere Strips zu verbinden.



  • ChaosAngel schrieb:

    Deshalb kann man bei Tristrips ja leere Vertices einfügen um mehrere Strips zu verbinden.

    "leere Vertices"? Du meinst degenerierte Dreiecke (Fläche 0), oder?



  • Jupp, mir viel das schöne Wort "degeneriert" nicht ein *G*


Anmelden zum Antworten