Performance?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

s_m_w

Betreff: Performance?

BeitragMo, Apr 03, 2006 13:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe diesen code:

Code: [AUSKLAPPEN]
Type Kreis
  Field x
  Field y
  Field size
  Field dir
End Type

Graphics 640,480

For i=1 To 10
  K.Kreis=New Kreis
  K\x=Rnd(0,640)
  K\y=Rnd(0,480)
  K\size=Rnd(0,50)
  K\dir=1
Next

SetBuffer BackBuffer()

;Haupt
;-----

While Not KeyHit(1)
  Cls
  For K.Kreis=Each Kreis
    If K\size > 50 Then
      K\dir = -1
    EndIf
    If K\size < 0 Then
      K\dir = 1
    EndIf
    K\size=K\size+K\dir
    Oval K\x-K\size/2,K\y-K\size/2,K\size,K\size
  Next
  Flip
Wend


Doch der läuft leider nur auf max 61 fps (auf meinem PC). WOran liegt es, das er solangsam läuft? Wie bekomme ich ihn schneller?
Sheep Happens

D2006

Administrator

BeitragMo, Apr 03, 2006 13:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Das liegt ziemlich wahrscheinlich an der Vertikalen Synchronisation.
Wenn dem Befehl Flip kein Parameter übergeben wird, wartet dieser solange mit dem tauschen der Buffer, bist der Monitor in etwa meldet: "Habe eben das Vollmalen eines ganzen Bildes vervollständigt, fange nun von oben neu an". Wie oft dies passiert, hängt natürlich von der eingestellten Hertz Zahl des Monitors ab, bei dir scheinbar 60 Hz. So ist es nur all zu logisch, dass auch dein gesamter Code nur 60 FPS hat, oder?

MfG
D2006

EDIT:
Ganz vergessen.
Mit Code: [AUSKLAPPEN]
Flip 0
kannst du die vertikale Synchronistation abschalten. Dies hat aber eventuell Grafikfehler zu Folge.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2
  • Zuletzt bearbeitet von D2006 am Mo, Apr 03, 2006 13:59, insgesamt einmal bearbeitet

s_m_w

BeitragMo, Apr 03, 2006 13:58
Antworten mit Zitat
Benutzer-Profile anzeigen
K, auf blitzplus läuft es mit einigen mehr fps...
Sheep Happens

D2006

Administrator

BeitragMo, Apr 03, 2006 14:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Habe eben noch EDIT angefügt. Smile

Es ist durchaus möglich das BlitzPlus einen anderen Grafikmodus erzeugt, zum Beispiel 75 Hertz Bildwiederholfrequenz. Leider kann man erst bei BlitzMax die Bildwiederholfrequenz mit angeben. So ist man leider darauf angewiesen, was BlitzPlus/Basic/3D macht.

MfG
D2006
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

s_m_w

BeitragMo, Apr 03, 2006 14:36
Antworten mit Zitat
Benutzer-Profile anzeigen
ui, mit Flip 0 läuft es nochmal um einige fps schneller. Danke
Sheep Happens

StepTiger

BeitragMo, Apr 03, 2006 17:06
Antworten mit Zitat
Benutzer-Profile anzeigen
STOP!
Die interessante Frage wäre, wieso du mehr als 61 fps brauchst?

Das menschliche Auge kann eh nur etwa 16 Bilder pro Sekunde erkennen!

Also 30-40-50 Frames reichen doch voll aus?!

Bei meinen spielen mach ich mir schon immer einen framelimiter von 40 fps rein ^^
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

tyty

BeitragMo, Apr 03, 2006 17:13
Antworten mit Zitat
Benutzer-Profile anzeigen
StepTiger hat Folgendes geschrieben:
Das menschliche Auge kann eh nur etwa 16 Bilder pro Sekunde erkennen!


Addier noch 8 dazu, das Auge kann 24 Bilder wahrnehmen.
Es sei denn du entwickelst Spiele für Fliegen, die können einige hundert(!?) wahrnehmen. Ui, mach da mal Stopmotionfilme.^^
User posted image

Kaikille suomea puhuville ihmisille: tyty = tyty the technical youngster!!!

StepTiger

BeitragMo, Apr 03, 2006 18:51
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich hab jetzt mal genauer nachgeschaut.

Das menschliche Auge erfasst zwischen 20 und 24 Bildern pro Sekunde.

Das Auge erreicht seine Höchstgeschwindigkeit mit etwa 10 Jahren, was eine langsame Geschwindigkeitsabnahme nach sich zieht
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

x-pressive

BeitragDi, Apr 04, 2006 7:38
Antworten mit Zitat
Benutzer-Profile anzeigen
@StepTiger: Daß das Gehirn nur 18-25 Bilder pro Sekunde verarbeiten kann hat aber nichts damit zu tun, das höhere Bildraten vom Auge dennoch eindeutig als angenehmer empfunden werden. Richtig "weich" wird eigentlich erst eine Wiederholrate ab 60 FPS empfunden -alles darunter ermüdet recht schnell die Augen, vor allem bei schnellen Vollbildbewegungen und Kamerafahrten.

Gerade bei schnellen Bewegungen im Spiel ist eine hohe Wiederholrate wichtig. Dann ist nicht nur ein viel präziseres Steuern möglich, sondern sämtliche Bewegungen und Animationen erscheinen einfach flüssiger und "lebensechter", weil einfach mehr Zwischenschritte vorhanden sind, als bei einer knappen Framerate -und damit auch ein grösserer Puffer, wenn die Framerate doch mal unter die Minimalgrenze fällt.

Ich würde auf jeden Fall grundsätzlich keine Framebremsen einbauen. Wieso auch? Gibt ja eigentlich keinen Grund dafür, ausser Bequemlichkeit (wenn man sich DeltaTime und Tweening sparen möchte). Und WENN, sollten 60 FPS schon das Mindeste sein.

30 FPS empfinde ich selbst z.B. schon eindeutig als "ruckelig", die bemerkt man bei einem Shooter eindeutig. Die meisten erfahrenen Spieler können die Wiederholrate eines Spiels im Bereich bis 60 FPS recht genau schätzen (manche sogar bis 100 FPS), auch ohne Framecounter. Was eindeutig beweist, daß das Gehirn die Flüssigkeit einer Bewegungsabfolge sehr gut wahrnimmt und das nichts damit zu tun hat, wie viele Bilder pro Sekunde das Gehirn auch tatsächlich einzeln "verarbeiten" kann.
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL

s_m_w

BeitragDi, Apr 04, 2006 14:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
STOP!
Die interessante Frage wäre, wieso du mehr als 61 fps brauchst?

Ganz einfach, wenn es bei den paar Kreisen schon nur mit ~61fps läuft, wie soll es erst in einem Spiel laufen?
Sheep Happens
  • Zuletzt bearbeitet von s_m_w am Di, Apr 04, 2006 14:01, insgesamt einmal bearbeitet

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDi, Apr 04, 2006 20:32
Antworten mit Zitat
Benutzer-Profile anzeigen
s_m_w hat Folgendes geschrieben:
Zitat:
STOP!
Die interessante Frage wäre, wieso du mehr als 61 fps brauchst?

Ganz einfach, wenn es bei den paar Kreisen schon nur mit ~61fps läuft, wie soll es erst in einem Spiel laufen?

??? Wenn dein Programm auf die Meldung deines Monitors warten muß, dann hilft dir auch kein 50GHz Rechner mit 16TByte RAM! Dann wartet der rechner halt ein bischen länger. Probier doch mal die Anzahl der Kreise zu verdoppeln, und wirst 'hoffentlich' feststellen, daß die FPS immer noch bei ~61 liegen...

...Das Menschliche Auge kann von mir aus auch nur 16 Bilder pro Sekunde erkennen, nur sind diese 'Steinzeitangaben' noch vom analogem Filmen abgenommen... Also: Eine Videoaufnahme von ~30FPS reicht, um es vom Menschen als eine fliessende Bewegung zu erkennen. Bei Computergrafiken, wo die Einzelbilder aus einer unendlich kurzen Zeitsequenz stammen, nicht mehr!.. Bei einer Aufnahme wird eben versucht, den ganzen Raum zwischen zwei Frames zu belichten. Dadurch entstehen unscharfe (Motionblur) Bilder, die aber als angenehmer empfunden werden. Dieser Motionblur wird auch bei Computer animietern Filmen wie Nemo, Shrek etc (mit wesentlich mehr Rechenleistungs'verschwendung') nachgerechnet, genau aus dem oben genanntem Grund. Bei Fussballspielübertragungen wird genau auf das Gegenteil gesetzt, da es da weniger auf das angenehme empfinden des Zuschauers ankommt, sondern auf scharfe Bilder bei Slowmotion. Da will man nun mal auch was erkennen, wer oder was wem getreten, geschubst, gebissen hat...

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group