Hallo,
vielen Dank fuer Eure Hilfe -- es macht sich bei mir ein wenig mehr Verstaendnis breit. :-)
Hinsichtlich des Erstellens der DL habe ich wohl (im konkreten Fall) noch einiges zu optimieren.
Die DL mit 100000 Dreiecken ist, wie schon gesagt, ein Platzhalter, der mein einkliches Problem gut abbildete.
In Wirklichkeit sind die Objekte Polygone (vorrangig loechrige und konkave), die derzeit mittels gluTess* in riesige DL verfrachtet werden und Texte (sind ja eh schwierig).
Wenn ich alles richtig interpretiere ("nah an den Daten arbeiten", "moeglichst viele Vertices uebergeben"), dann spricht doch wieder einiges fuer VBOs. Meine Tests (Stencilbuffer zum Rendern von Loechern und Konkavitaeten) diesbzgl. waren ernuechternd, aber vielleicht koennte es so gehen:
1. die Polygone moeglichst effizient eigenhaendig triangulieren und dann
2. die Eckpunkte in ein VBO packen und als GL_TRIANGLES bzw. falls moeglich als GL_TRIANGLE_STRIP rendern.
Ist es dann guenstiger, moeglichst viele (alle?) Ecken in ein VBO zu packen oder fuer jedes Objekt ein eigenes VBO zu ertselle?
Alle Vertexdaten in ein VBO. Auf die Art weiß die Graka/ der Treiber bestens bescheid,
was abgeht, und kann sich entsprechend darauf einstellen. Zudem sparst du es dir, den
momentan aktuellen Buffer auszuwechseln; was auch etwas Zeit braucht.
Verwaltungstechnisch für den Programmierer sind mehrere VBOs aber wohl günstiger (vor
allen Dingen, wenn du auch mal VBOs löschen willst).
glPush und PopMatrix sind eigendlich nicht langsam, verhindern aber in diesem Fall, das die Displayliste optimiert werden kann. SInvoller ist, es aber die daten richtig transformiert zu speichern, so das später nicht ständig die Matrix gewechselt werden muss.
Mitglieder in diesem Forum: 0 Mitglieder und 16 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.