Huhu ich hab mal ne frage zu glCullFace und glPolygonOffset. Wieviel Zeit brauchen diese Aufrufe, d.h. kann ich die Performance verbessern wenn ich z.b.: die Anzahl der Rufe pro Frame auf ein Zehntel reduziere?
_________________ Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.
Registriert: Mi Jul 17, 2002 12:07 Beiträge: 976 Wohnort: Tübingen
Natürlich sparst du immer ein bisschen Zeit, wenn du irgendwelche Funktionen weglässt. Aber zum Beispiel Culling sollte immer an sein, da ist der Leistungsgewinn wirklich teilweise sehr groß. Wenn du drauf achtest, dass deine Polygone immer im Uhrzeigersinn oder dagegen gezeichnet werden, dann musst du glCullface nur einmal beim Init ausführen.
Edit: Sekt für alle! mein 500. Beitrag!
_________________ "Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0." - Hal Faber Meine Homepage: http://laboda.delphigl.com
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
PolygonOffset kannst du eigentlich auch beim Init setzen. Außer du muss es zur Laufzeit ändern. Ansonsten kann ich nur jedem empfehlen sich diesen Abschnitt mal durch zulesen. Der ist zwar sehr alt hat aber in gewissen Bereichen heute immer noch gültigkeit. Nur die Optimierungsmöglichkeiten haben sich erweitert.
Im Grunde steht folgendes drin. Alles Überflüssige sollte man weglassen. Häufiges wechseln der Texturen sollte man lassen. Häufige Statechanges sollte man auch lassen. Bei mehreren QUADS sollte man wenn möglich nur ein glBegin und ein glEnd machen. Wenn nicht sogar auf DLs oder VBOs zurückgreifen. Wenn du dich in Innenräumen befindest oder eine Skybox hast kannst du das Löschen des Backbuffers (nicht den Depthbuffer) sein lassen. Da dann eh alles übermalt wird. Solche Optimierungen bringen vergleichsweise wesentlich mehr als die Einstellung des Cullfaces.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Auch das Shademodel umstellen bringt was. Wenn man GL_FLAT statt GL_SMOOTH benutzt kann einem das schon weiterhelfen. Vorallem, da man meistens eh Texturen drüber mahlt.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Das Shadermodel ist den heutigen Grafikkarten relativ egal. Seit Einführung von T&L (Transformation & Lightning) werden Licht und Transformationen in der Hardware berechnet und das sollte entsprechend schnell sein. Wenn Licht daktiviert ist sollte so etwas sowieso nicht mit berechnet werden.
Bei meiner alten TNT2 (kein T&L) konnte man das noch richtig feststellen. Da hat man wirklich gemerkt, wenn man Backface Culling deaktiviert oder Doubleside Lightning aktiviert hatte. Dann gingen die FPS mal eben (pro Option) um die Hälfte runter. Meine Radeon hingegen lässt so etwas ziemlich kalt. Wobei es da wahrscheinlich auch nur auf die Masse ankommt. Wenn es genug ist bekommt man auf der Radeon sicherlich auch einen messbaren Unterschied. Aber die Steigerung sollte dennoch ziemlich gering ausfallen.
Mitglieder in diesem Forum: Bing [Bot] und 5 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.