Entwickler-Ecke
Multimedia / Grafik - OpenGL - Geschwindigkeits problem
Aya - Mi 16.10.02 02:36
Titel: OpenGL - Geschwindigkeits problem
Hi,
ich hab grad mit OpenGL mal eine etwas größere Szene mit 2 unterschiedlichen Texturen gemacht... man kann durchlaufen etc..
Mein problem ist jetzt, das manchmal (besonders wenn man sich dreht) alles ein wenig langsamer wird, und ich weiß ehrlichgesagt nicht wieso...
Ihr könnt euch das Prog ja mal runterladen (
http://www.animes.de/OpenGL.zip), vieleicht weiß jemand woran das liegt... :) Weil, ich meine.. bei nem richtig großen spiel, wird das Spiel ja auchnicht langsamer nur weil man sich mal dreht :roll:
Au'revoir,
Aya
PS: Wenn man die Texturen ausschaltet (F12 = Texturein Ein/Ausschalten), geht alles problemlos super schnell :)
Andreas Pfau - Mi 16.10.02 16:57
- Anschneinend arbeitest du ohne Backface-Culling, das solltest Du einsetzen.
- Auf jeden Fall solltest Du Displaylisten verwenden.
- Verzichte auf OpenGL-Licht, verwende Lightmaps.
Probier's mal! Falls es nix bringt, solltest du schon den Quelltext veröffentlichen, damit man auch sieht, wo der Fehler genau liegt :D
- AP-
tommie-lie - Mi 16.10.02 18:38
Ich hab mir das mal runtergeladen:
Bei mir wird's irgendwie nicht langsamer...
Aber überprüfen kann ich das natürlich nicht, denn man sieht nirgendwo die FPS. Vielleicht solltest du in die Caption oder irgendwo auf den Screen das mal anzeigen lassen! Dann kann man auch genau überprüfen, ob es beim Drehen wirklich langsamer wird.
Oder es liegt an deiner Hardware...
Tschüß
Thomas
P.S.: Au revoir schreibt man übrigens immer noch ohne Apostroph...
Aya - Mi 16.10.02 19:07
Andreas Pfau hat folgendes geschrieben: |
- Anschneinend arbeitest du ohne Backface-Culling, das solltest Du einsetzen.
- Auf jeden Fall solltest Du Displaylisten verwenden.
- Verzichte auf OpenGL-Licht, verwende Lightmaps.
|
Hi,
danke~~ es lag an dem Backface Culling :)
DisplayListen benutz ich sowieso und OpenGL licht nutz ich auchnet :)
Au'revoir,
Aya
DeCodeGuru - Mi 16.10.02 19:47
Aber "Au revoir" benutzt du immer noch mit " ' " :mrgreen:
Nur zur Erklärung. Au ensteht aus à und le. Das wird dann zusammengesetzt und ergibt au. Also ist das auch ein Artikel mit Präposition. Und seit wann hängt man das Hauptwort mit einem " ' " an den Artikel :?: :wink:
Aya - Mi 16.10.02 20:09
Es sieht halt schöner aus~ bäääh *zunge rausstreck*
Aya - Mi 16.10.02 20:36
Hi,
es lag wohl dochnicht an dem Backface...
denn mir ist erst eben aufgefallen das er da dann nicht die Decke gezeichnet hatte, jetzt hab ich das so geändert das sie wieder gezeichnet wird und es wird wieder langsam wenn man eine weite sicht hat... :(
PS: Ladet es euch nochmal runter (
http://www.animes.de/OpenGL.zip), diesmal ist es mit CULL_FACE und wenn man F1 drück werden die FPS eingeblendet.. :)
Andreas Pfau - Sa 19.10.02 20:34
Tja, da gibt es wieder x möglichkeiten. Hier ein paar meiner ideen:
- Ich hoffe, die gemotire befindet sich in einer einzigen display liste, nicht für jede Wand eine...
- Versuch andere Textur-größen. Keine Ahnung, ob das hilft...
- OK, du hast fogging, d.h. die maximale sichtweite beträgt, sagen wir mal, 50. Dann solltest du auch die far clipping plane auf ca. 55 setzen, damit nicht zu viel gerendert wird.
- Na ja, das mit dem drehen... verwendest du den PerformanceTimer oder GetTickcount oder so was, um die Dregeschwindigkeit konstant zu halten? falls ja, versuche es mal so oder so ähnlich:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| var C, F: Int64; QueryPerformaceFrequency(F); {...} procedure RotateLeft; var B: Int64; begin B := C; QueryPerformaceCounter(C); glRotatef(2.5 * ((C - B) / F), 0, 1, 0); // 2.5 pro Sekunde end; |
Trick bei der sache: mit dem counter wird die geschwindikeit konstant gehalten. Wenn du den Counter 2 mal abfragen würdest, z.b. an anfang und am ende der prozedur, würde das ergebnis verfälscht (das Problem hatte ich auch mal...:D).
Viel Glück!
Aya - So 20.10.02 16:38
Hi,
dankee~~~
es lag wohl an der Texturgröße :)
hab sie jetzt auf 128x128 und 64x64 verkleinert, läuft nu mit 114FPS durchgehend *froi*
Au'revoir,
Aya
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!