JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=d22fe7e297b7ad86f68e2bc0a5436464Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

FPS !?!? SPIELFELD ?!?!
Gehe zu Seite 1, 2, 3  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
DarK
Super JLI'ler



Anmeldedatum: 23.07.2002
Beiträge: 452
Wohnort: NRW
Medaillen: Keine

BeitragVerfasst am: 18.06.2003, 22:31    Titel: FPS !?!? SPIELFELD ?!?! Antworten mit Zitat

jo muh,
ich hab hier ein kleines problem...
wenn ich eine for schleife mache und die ersten kästchen zeichne dann hab ich 80 FPS und ganz plötzlich schießen die fps auf 40 runter nur bei einer 2 for schleife die dann die 2 kästchen zeichnen...
hier ein codeauschnitt, beide for schleifen sind fast das selbe ...

Code:

int SpriteX = 0;
   int SpriteY = 0;
   for (int y = scrollY; y < max_scrollY; y++)
   {
      for (int x = scrollX; x < max_scrollX; x++)
      {
         boden.setposition(SpriteX, SpriteY);
         boden.draw();
      
         SpriteX += 100;
      }
            
      SpriteX = 0;
      SpriteY += 66;
   }


scrollY und scrollX sind hierbei auf 11 und 10 gestellt...
folgende Bilder zeigen das problem noch genauer:

eine For schleife

zwei for schleifen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 19.06.2003, 09:38    Titel: Antworten mit Zitat

Das liegt seht Wahrscheinlich am V-Sync. Du verwendest für dein Spielfeld eine Monitorauflösung, die eine Wiederholfrequenz von 80 Hz hat. Wenn nun mehr gezeichnet werden soll, als in einen 1/80'stel Abschnitt passt, wird die Framerate halbiert, da der Present-Befehl auf den nächsten V-Sync wartet.
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
DarK
Super JLI'ler



Anmeldedatum: 23.07.2002
Beiträge: 452
Wohnort: NRW
Medaillen: Keine

BeitragVerfasst am: 19.06.2003, 12:48    Titel: Antworten mit Zitat

und was kann ich dagegen machen ?
Auflösung ändern ?
V-Sync ändern ? (geht das überhaupt ?)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 19.06.2003, 13:01    Titel: Antworten mit Zitat

Warum sollte die Framerate halbiert werden? Er wartet doch erst vor dem Pageflipping darauf, dass der Kathodenstrahl wieder von vorne anfängt. Ich hatte mal getestet, bei wieviel Sprites die Framerate einbricht... und da hat sich auch nichts halbiert...

[Nachtrag]
Dark: Die Framerate ist doch okay bei so einer hohen Auflösung... du solltest dir Gedanken machen, wenn sie unter 30 geht...
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
DarK
Super JLI'ler



Anmeldedatum: 23.07.2002
Beiträge: 452
Wohnort: NRW
Medaillen: Keine

BeitragVerfasst am: 19.06.2003, 15:40    Titel: Antworten mit Zitat

wenn ich aber 5 sprites auf dieses Spielfeld mehr zeichne dann hab ich "3" fps Sad
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 19.06.2003, 19:11    Titel: Antworten mit Zitat

Hazel hat Folgendes geschrieben:
Warum sollte die Framerate halbiert werden?

Wenn bei jedem Framedurchlauf eine Microsekunde mehr verbraucht wird, als die V-Sync-Zeit zulässt, wartet das Flipping jedes mal darauf, bis das nachste VSynk erreicht wird. Ergo Halbierung der Framerate.
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 19.06.2003, 19:39    Titel: Antworten mit Zitat

In der Theorie klings logisch aber in der Praxis kann ich das nicht nachvollziehen...
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
DarK
Super JLI'ler



Anmeldedatum: 23.07.2002
Beiträge: 452
Wohnort: NRW
Medaillen: Keine

BeitragVerfasst am: 20.06.2003, 14:08    Titel: Antworten mit Zitat

kann mir vieleicht auch eine Lösung sagen ? Sad
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 20.06.2003, 14:20    Titel: Antworten mit Zitat

Selbstmord? (j/k).

Nee keine Ahnung... Auflösung verringern? Ist alles im Grafikspeicher und nicht im Hauptspeicher? =/
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
gl_echse
JLI'ler



Anmeldedatum: 01.01.2003
Beiträge: 105

Medaillen: Keine

BeitragVerfasst am: 20.06.2003, 18:22    Titel: Antworten mit Zitat

vsync deaktivieren;)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
DarK
Super JLI'ler



Anmeldedatum: 23.07.2002
Beiträge: 452
Wohnort: NRW
Medaillen: Keine

BeitragVerfasst am: 20.06.2003, 23:20    Titel: Antworten mit Zitat

Zitat:
Auflösung verringern?

bereits versucht, kommt trotzdem ... wenn ich über das spielfeld noch irgendwas packe dann schießt er sofort auf 5 fps runter ...

Zitat:
Ist alles im Grafikspeicher und nicht im Hauptspeicher?

woran erkenn ich das ? Very Happy

Zitat:
vsync deaktivieren;)

welcher befehl ist das bei direct3d init ?

son scheiss Sad
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
underberg
JLI'ler



Anmeldedatum: 11.01.2003
Beiträge: 153

Medaillen: Keine

BeitragVerfasst am: 21.06.2003, 04:31    Titel: Antworten mit Zitat

Zitat:
Zitat:
Ist alles im Grafikspeicher und nicht im Hauptspeicher?

woran erkenn ich das ? Very Happy


Bei der Initialisierung der Sprites...
Entweder du hast VIDEO_MEMORY oder SYSTEM_MEMORY angegegeben...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
DarK
Super JLI'ler



Anmeldedatum: 23.07.2002
Beiträge: 452
Wohnort: NRW
Medaillen: Keine

BeitragVerfasst am: 21.06.2003, 13:26    Titel: Antworten mit Zitat

weder bei D3D init oder der erstellung von Sprites habe ich eins dieser beiden...
im buch kann ich auch nürgend diese 2 Angaben zu D3D finden ...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
magynhard
Super JLI'ler



Anmeldedatum: 26.04.2003
Beiträge: 461
Wohnort: Wild durch die Welt ;-)
Medaillen: Keine

BeitragVerfasst am: 21.06.2003, 14:55    Titel: Antworten mit Zitat

"Die primäre Oberfläche"
(altes) Buch Seite 286 (code) und auf 287 wird das nochmals erwähnt, was das genau ist Wink


Wenn du es nirgends verwendest, kann es sein, dass dann die (vergleichsweise extrem langsame) Festplatte verwendet wird? Shocked
_________________
Niemand ist hoffnungsloser versklavt als der, der fälschlich glaubt frei zu sein. [J. W. Goethe]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 21.06.2003, 15:45    Titel: Antworten mit Zitat

Ich glaube nicht, dass DirectX für Grafiken viruellen Arbeitsspeicher verwenden würde... das wäre lachhaft. :P
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Gehe zu Seite 1, 2, 3  Weiter
Seite 1 von 3

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum