nur Farb Vertexe schnneller



  • werden bei OpenGL vertexe, die nur mit glcolor modifisiert wurden schneller gerendert als mit texturen?



  • Probier es doch aus 😃


  • Mod

    und alterbro, nachdem du das hier gepostet und dann nachgedacht+gegooglet hast, was kamm raus?



  • nichts, diesmal hab ich wirklich nichts gefunden aber, auf das mit dem selbst ausprobieren hätt ich kommen sollen, sorry.

    danke

    ach ja wies aussieht sind Farb vertexe schneller



  • Macht das nicht Sinn?
    Bloß einfärben geht schneller als eine ganze Textur raufmappen...



  • Is irgendwie logisch, ja aber vermuten ist gut prüfen besser.



  • Das hängt ganz davon ab, ob du Vertex oder Fragment bound bist. Render mal ein Terrain 4096*4096 brute force, dann wird es kaum noch einen Unterschied machen, ob du Texturen verwendest oder nicht!



  • Ich glaube es geht eher darum, ob man glColor nimmt oder halt wirklich eine Texture.



  • Vertexfarben sind natürlich prinzipiell schneller als Texturen. Die Frage ist ob der Unterschied in deiner konkreten Anwendung überhaupt messbar oder sonstwie relevant wäre...



  • Definitiv!
    Render mal eine Scene mit 100.000 Polys und nimm 10 unterschiedliche Texturen (512x512 als Beispiel)!
    Im Gegenzug färbst du die einfach nur mit glColor ein! Ich wette du bist min. 25% schneller ^^



  • Das liegt dann vermutlich vor allem an der Tatsache dass er beim Rendern mit den 10 Texturen die Szene in 10 Teilen rendern muss.
    Ein besserer Vergleich wäre eine Textur vs Vertexfarben. Vermutlich wird der Unterschied auf einigermaßen moderner Hardware dann sehr gering ausfallen, da ein einzelner Texture-Read kaum was ausmacht, vor allem wenn du bei derart viel Geometrie sowieso eher vertexbound bist. Könnte mir sogar vorstellen dass du da auch gern noch zwei Texturen draufpappen könntest ohne irgendeinen nennenswerten Unterschied festzustellen...


  • Mod

    dot schrieb:

    Vertexfarben sind natürlich prinzipiell schneller als Texturen.

    vs

    dot schrieb:

    Vermutlich wird der Unterschied auf einigermaßen moderner Hardware dann sehr gering ausfallen, da ein einzelner Texture-Read kaum was ausmacht, vor allem wenn du bei derart viel Geometrie sowieso eher vertexbound bist.

    ich bin mir auch ganz sicher, dass vertexfarben... oder texturen... schneller sind.

    vielleicht sollte ich hier alle posts umeditieren in aepfel vs birnen und euch in rudw verschieben 🤡



  • rapso schrieb:

    dot schrieb:

    Vertexfarben sind natürlich prinzipiell schneller als Texturen.

    vs

    dot schrieb:

    Vermutlich wird der Unterschied auf einigermaßen moderner Hardware dann sehr gering ausfallen, da ein einzelner Texture-Read kaum was ausmacht, vor allem wenn du bei derart viel Geometrie sowieso eher vertexbound bist.

    ich bin mir auch ganz sicher, dass vertexfarben... oder texturen... schneller sind.

    vielleicht sollte ich hier alle posts umeditieren in aepfel vs birnen und euch in rudw verschieben 🤡

    Naja, rein was die Performance betrifft kann mans eben so pauschal nicht sagen. Natürlich ist es so, dass man mit nur Vertexfarben prinzipiell weniger Bandbreite braucht (außer vielleicht wenn man gerade sowas wie Reyes implementiert 😉 ). Man wird mit Vertexfarben daher sicherlich praktisch nie langsamer sein als mit Texturen. Aber die Frage ob es im konkreten Fall überhaupt einen messbaren Unterschied gibt und wenn ja wie groß der ist, lässt sich allgemein eben nicht beantworten weil es von viel zu vielen Faktoren abhängt!? Ich denk da sind wir und einig? 😉

    Abgesehen davon sind Vertexfarben und Texturen aber natürlich zwei völlig verschiedene Dinge. Auch wenn man statt Vertexfarben evtl. mit Texturen arbeiten kann, muss das noch lange nicht besonders sinnvoll sein und umgekehrt sind Vertexfarben natürlich kaum ein Ersatz für Texturen (wenn sie es in deinem Fall wären, solltest du wohl sowieso eher Vertexfarben als Texturen verwenden)...



  • Also "Vertexfarben" heisst im einfachsten Fall R, G, B zusätzlich zu den Vertex-Koordinaten.
    "Textur" heisst im einfachsten Fall U, V zusätzlich zu den Vertex-Koordinaten.

    Rein was die Vertices angeht müsste hier dann "Textur" schneller sein, da nur zwei zusätzliche Vertex-Werte für jeden Pixel interpoliert werden müssen. Wenn überhaupt ein Unterschied besteht. Kann ja leicht sein dass die Hardware Werte sowieso immer in 4er Gruppen interpoliert, dann wäre 2 vs. 3 egal.

    Ist aber alles ziemlich wörscht, da wir den Pixel-Shader bei dieser Überlegung noch nicht mit einbezogen haben.
    Und da wird ein einfacher Shader mit null Texture-Fetches wohl schneller sein, als ein einfacher Shader mit einem Texture-Fetch.


  • Mod

    aber behaltet das fuer euch, wenn das geheimniss an die oeffentlichkeit geraet, benutzt niemand mehr texturen, weil vertex colors ja schneller sind 😉


Log in to reply