Guten Abend, ich mal wieder.
Habe ein Problem, dass ich schon seit Tagen vor mir her schiebe (Habe es immer weiter hinten auf der Todo-List platziert ), aber jetzt ist der Zeitpunkt gekommen, an dem ich das ganze nun doch mal in den Griff kriegen sollte.
Um mein Problem zu verstehen, guckt euch die Bilder im Anhang an und behaltet sie in Gedanken. Fertig? Gut Links ist das normale Game, rechts mit zwei eingeblendeten Fenstern.
Sobald ich 1 Fenster einblende sinken meine FPS von 120fps auf 70fps. Sobald ich ein zweites Fenster einblende sinken sie von 70fps auf 50fps, usw.. Anfangs dachte ich, dass das womöglich an meinem Notebook liegt, da der nur einen schlechten Grafikchip beherbergt Als dann allerdings ein Kumpel von mir das ganze mit ner GeForce 6800 probiert hat; er hatte 890fps und ist auf 670fps gefallen, sobald zwei Fenster eingeblendet wurden. Das KANN nicht möglich sein, dass 4 größere Quads und ein paar Lines (Line_Strips) soviel fps verbraten. Alleine mein Game an für sich besteht schon aus 768 Quads und mehr.
Aber was rede ich groß rum, ohne Code könnt ihr nichts anfangen
Ich weiß echt nicht, an was es liegen könnte. Die for-Schleife sollte auch fix genug gehen, oder? (Nach dem Erstellen eines Fensters weise ich ihm mit SetText einen Text zu. In der Procedure wird er auch zeitgleich in mehrere Strings (je nachdem, wieviele Zeilenumbrüche drin sind) aufgeteilt. Sollte also eigentlich nie über 30 hinaus gehen. Kann's sein, dass es am Blending liegt? (Vermute ich auch weniger, denn in der Forensuche habe ich bei "Blending + langsam" nichts auffälliges gefunden.
Ich hoffe, dass ihr mir helfen könnt. Danke schonmal im vorraus..
gruß Spessi
ps: ja, ich weiß - die Grafiken sind noch schrecklich Werde die noch überarbeiten (tut zwar nix zur Sache, sollte dennoch gesagt werden ;p)
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Das einzige, was wirklich bremsen könnte wäre Printtext
Kannst du die funktion vll mal noch posten?
_________________ Es gibt eine Theorie, die besagt, wenn jemals irgendwer genau rausfindet, wozu das Universum da ist und warum es da ist, dann verschwindet es auf der Stelle und wird durch etwas noch Bizarreres ersetzt.
Es gibt eine andere Theorie, die besagt, dass das schon passiert ist.
und schon hatte ich 102-106fps. (Aber dennoch: 15fps wegen ein paar Quads?) Wie könnte ich die Ausgabe denn noch optimieren? Wie könnte ich eine schnellere Textausgabe auf die Beine stellen?
Ich weis nicht, wie lange das aktivieren bzw. deaktivieren des Tiefetests dauert. Gleich mal Probieren...
Schneller Textausgabe?
Na ja, wenn sich der Fensterinhalt nicht dauernd ändern soll, dann einmal die Fenster in ne Textur rendern und dann einfach auf ein Quad kleben.
Sollte um ein vielfaches schneller sein.
_________________ Es gibt eine Theorie, die besagt, wenn jemals irgendwer genau rausfindet, wozu das Universum da ist und warum es da ist, dann verschwindet es auf der Stelle und wird durch etwas noch Bizarreres ersetzt.
Es gibt eine andere Theorie, die besagt, dass das schon passiert ist.
Sehr gute Idee, dankeschön! Werde ich gleich machen, dann sollte ich ein Problem weniger haben
Aber was meintest du mit "Ich weis nicht, wie lange das aktivieren bzw. deaktivieren des Tiefetests dauert."? War das noch auf die Textausgabe bezogen, oder noch auf meine alte Frage "(Aber dennoch: 15fps wegen ein paar Quads?) Wie könnte ich die Ausgabe denn noch optimieren?"? Denn bei der Textausgabe hatte ich den Tiefentest ja mit auskommentiert; wenn ich das ganze dann nurnoch einmalig mache (auf Textur schreiben) mache, dann sollte selbst das nicht mehr stören.
Aber trotzdem: Es gehen 15fps wegen ein paar Quads drauf? wow.
Dankeschön und schönen Abend / schönes Wochenende noch...
gruß Spessi
Das bezog sich auf die 15 fps wegen den Quads.
Also am glenable/gldisable kanns nich liegen, das braucht für 1 mio durchläufe nur 30 millisekunden zumindest auf meinem rechner. Ich weis nich inwiefern da die Grafikkarte Ausschlaggebend ist.
Vielleich weis es einer der Fachleute für OpenGL.
Wobei ich denke, das der Verlust an Frames akzeptabel ist. Wenn du sagst, du hast ne schlechte Notebook Graka, die fast 6 mal langsamer ist als die 6800, dann wirst du auf kaum einem Rechner in die Bereiche kommen, wo es ruckelt.
_________________ Es gibt eine Theorie, die besagt, wenn jemals irgendwer genau rausfindet, wozu das Universum da ist und warum es da ist, dann verschwindet es auf der Stelle und wird durch etwas noch Bizarreres ersetzt.
Es gibt eine andere Theorie, die besagt, dass das schon passiert ist.
Ok, naja, bin eben Optimierungsgeil Ich versuch immernoch ein paar Frames rauszukitzeln, auch wenn ich deutlich mehr fps als nötig habe. (Da sollten sich einige Firmen, die heute Spiele entwickeln, mal ne Scheibe abschneiden, glaube ich )
Ok, dann wär das geklärt. Falls noch irgendjemand Tipps hätte, wie man das ganze _deutlich_ (mehr als 5fps) optimieren könnte: immer her mit Tipps - man lernt nie aus
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Ich weiss ja nicht, ob du das jetzt mittlerweile in die Textur bekommen hast aber... Die verwendete Methode zur Textausgabe ist nicht unbedingt die schnellste (und wie du sicherlich auch festgestellt hast nicht die hübscheste). Vielleicht solltest du dir mal andere Methoen wie z.B. die Verwendung von Texturfonts oder sdl_ttf anschauen.
Um noch das letzte bisschen Performance rauszukitzeln müsstest du von GL_QUADS auf GL_TRIANGLES umsteigen, aber das wird nicht die erwünschten 5fps bringen. Wenn später das ganze größer werden soll, dann könntest du versuchen, deine GUI in VertexBufferObejcts zu packen, was bei vielen Quads mit gleichen Blending/Textureinstellungen ne menge Performance bringen kann.
Und ich kann dich beruhigen: Ich schreibe gerade selber an meiner GUI und normalerweise ziehen ein paar größere Quads nicht so viel Performance, wobei das natürlich auch an deinem Grafikchip liegen kann.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Ich sage einfach mal, dass der Einbruch der Geschwindigkeit an den verwendeten Fonts liegt. Denn diese werden mit echten BITmaps (1Bit Bitmap) und dem OpenGL Befehl glBitmap gezeichnet. Und der Arbeitet direkt auf Pixelbasis wärend die Grafikkarten auf Polygone ausgelegt sind. Und das ist einfach nur langsam. Aber wenns komplexer wir, dann werden auch generell nicht mehr so viele Bilder gezeichnet wodurch die Einbußen nicht mehr so groß sind.
Die Fenster in selber komplett in Texturen zu packen halte ich für keine gute Idee, denn Fenster sind evtl mal flexibel. Und außerdem geht damit auch noch ein entsprechend großer Speicherverbrauch einher. Der bei 1-2 Fenstern evtl nicht so gravierend ist aber bei 20-30 sicher nicht zu vernachlässigen sein dürfte.
Alternativ kann ich aber auch nur empfehlen auf Texturfonts umzusteigen. Zum Bleistifft so etwas da.
Mitglieder in diesem Forum: 0 Mitglieder und 2 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.