nur 60 fps

    ACHTUNG dies ist das ALTE Forum!!

    Das neue gibt es unter https://discourse.bohramt.de!
      Original von Paradise
      sach mal trip
      wie schnell sind deine augen
      meine können bei 30 nicht mehr n unterschied sehen :D


      meine schon :rolleyes: :D


      du wirst es nicht glauben, aber spiel mal mit 100fps nachdem du immer mit 60 gespielt hattest! :P
      "Ich warn dich, ich fahre zu dir, ess nen Teller Buchstabensuppe und kack dir meinen namen vor die Tür" (Pillath)
      Gebot 1: Du sollst keine dummen Fragen in den Zeiten der Google Herrschaft stellen. :rolleyes:



      1. Was macht die VGA-Karte? Was ist ein "vSync"?

      Die Vertikalfrequenz wird von der Grafikkarte "erzeugt". Das funktioniert wie folgt:

      Ein Taktgenerator auf der Grafikkarte erzeugt den Pixeltakt. Dieser ist üblicherweise im MHz Bereich. Die Länge eines Pixeltakt-Zyklus bestimmt den zeitlichen Abstand zwischen zwei einzelnen Pixeln, die von der Grafikkarte am VGA- oder DVI-Ausgang sequentiell (hintereinander) ausgegeben werden.

      Ein Zähler zählt über eine Zeile hinweg die Zyklen des Pixel-Taktes. Immer wenn eine Zeile (inklusive Ränder und unsichtbarer Pixel für den horizontalen Rücksprung des Elektronenstrahls) komplett durchlaufen wurde, wird ein hSync-Impuls erzeugt und der Zähler zurückgesetzt. So wird die so genannte Horizontalfrequenz gebildet. Eine Zeile wird immer von links nach rechts durchlaufen.

      Ein weiterer Zähler zählt die Zeilen. Immer wenn ein komplettes Bild durchlaufen wurde (von oben nach unten, inklusive Ränder und unsichtbarer Zeilen für den vertikalen Rücksprung des Elektronenstrahles) wird ein vSync-Impuls erzeugt und der Zähler zurückgesetzt.

      Während der ganzen Zeit liegen auf den R, G, und B Kanälen des VGA-Ausgangs Spannungen an, die die jeweilige Farbintensität im aktuellen Pixel signalisieren. So überträgt die VGA-Karte kontinuierlich Bild für Bild; jeweils eines pro Vertikalzyklus. Jedes Bild wird Zeile für Zeile von oben nach unten, jede Zeile wird Pixel für Pixel von links nach rechts übertragen. Für DVI funktioniert das Ganze fast genauso, es werden bloß digitale statt analoger Werte auf den Leitungen für die Farbkanäle übertragen. Allerdings wird bei DVI (auf einer weiteren Leitung) auch der Pixeltakt übertragen, während bei analoger Übertragung außer den Farbwerten nur noch die hSync- und vSync-Impulse übertragen werden.

      Die Grafikkarte holt sich die notwendige Information aus dem Grafikspeicher, der sich meist auf der Grafikkarte befindet. Wie die Information auf der Grafikkarte codiert ist, hängt von der Farbtiefe (genauer: Pixelformat) des gerade aktiven Modus ab. Da gibt es eine ganze Palette: 1 Bit pro Pixel (schwarz/weiß), 2 Bit pro Pixel (CGA, vierfarbig), 4 BPP (EGA, 16 Farben), 8 BPP (VGA, 256 Farben), 16 BPP (65536 Farben), 24 und 32 BPP (beide ca. 16.7 Mio. Farben). Zwischen den beiden letzteren gibt es keinen Unterschied, was die Anzahl der Farben angeht. Pro Farbkanal werden maximal 8 Bit pro Pixel ausgewertet. 32 Bit verwendet man hauptsächlich deshalb, weil dies genau der Wortbreite (Ein "Wort" eines Prozessors nennt man die Datenmenge, die in einem (Standard)- (Daten)- Register des Prozessors Platz hat) eines 32-Bit Prozessors entspricht. Dies ermöglicht höhere Zugriffsgeschwindigkeiten auf einzelne Pixel und vereinfacht das Design von Grafikprozessoren. Aus diesem Grunde bieten die meisten Spiele nur Einstellmöglichkeiten für 16 Bit oder 32 Bit, nicht jedoch für 24 Bit, obwohl letzteres auch möglich ist. Aber es ist halt langsam.

      Wie auch immer die Information auf der Grafikkarte codiert ist, die Farben werden immer auf dieselbe Art als Spannungs-Werte am VGA-Ausgang codiert. Die Erzeugung dieser Spannungswerte wird von drei parallel laufenden Digital-Analog-Konvertern, dem so genannten "RAMDAC" vorgenommen. Die müssen ziemlich schnell sein: Ein Pixeltakt von 162 MHz wäre z.B. typisch für 1600x1200 Pixel. Der RAMDAC muss hierbei 162 Millionen mal pro Sekunde aus drei digitalen 8-Bit Werten drei Spannungswerte erzeugen. Intern rechnet die Grafikkarte während der Ausgabe also schon auf digitaler Ebene jede Farbtiefe auf 3x8 Bit um!

      Je nach Grafikmodus ist der Bereich im Grafikspeicher, der für das angezeigte Bild verwendet wird, unterschiedlich groß; die Größe (in Bit) berechnet sich aus Anzahl Pixel * Farbtiefe. Diesen Bereich nennen wir fortan "Bildpuffer".

      Ein bestimmter Grafikmodus definiert sich also letztendlich aus Pixelformat, Pixeltakt, Zeilenlänge (in Pixeln), Bildhöhe (in Zeilen), und den Größen für die Randbereiche und die Rücksprung-Bereiche. Mit entsprechenden Tools unter Windows (Powerstrip) oder mit Modelines (unter Linux) kann man sich auf die Art und Weise fast beliebige eigene Grafikmodi basteln.

      2. Was macht ein Spiel, um den Eindruck von Bewegung zu erzeugen?

      Was auf einem Monitor angezeigt wird, ist also die kontinuierliche Folge von Bildern, die von der Grafikkarte übertragen werden. Wenn wir nur den Desktop anzeigen, sind diese Bilder immer (fast) identisch. Um Bewegung zu erzeugen, müssen sich die Bilder jedoch über die Zeit verändern. Das bedeutet, dass der Inhalt des Grafikspeichers kontinuierlich verändert werden muss. Um auf dem Windows-Desktop den Mauszeiger zu bewegen, wird kontinuierlich folgender Zyklus durchlaufen:

      neue Mausposition ermitteln

      Rechteckigen Bereich des Desktops an der neuen Mausposition "retten". (aus dem Bildpuffer in einen anderen Speicherbereich (meist auch Grafikspeicher) kopieren)

      Mauszeiger in diesem Bereich in den Bildpuffer "malen"

      Ein Weilchen warten (bzw. irgend was anderes tun, z.B. das gerade laufende Programm weiter ausführen)

      Den Mauszeiger wieder löschen, indem der Bereich wieder zurückkopiert wird.

      Maus-Zyklus beginnt von vorn


      Dass diese Methode alles andere als perfekt ist, dürfte nicht schwer zu erkennen sein:

      Direkt nach dem Löschen des Mauszeigers ist kurzfristig kein Mauszeiger im Bildpuffer vorhanden!
      Wenn irgendetwas auf dem Desktop an der Position der Maus geändert werden soll, muss der Mauszeiger kurzzeitig "ausgeschaltet" werden, da sonst das gerettete Hintergrund-Rechteck nicht mehr korrekt wäre.

      Diese kurzen "Maus-Aussetzer" sind allerdings heutzutage kaum je zu Gesicht zu bekommen, da die PCs einfach so schnell sind, dass das Löschen und Neuzeichnen eines Mauszeigers eine Sache von sehr deutlich weniger als einer Millionstel Sekunde ist. In dieser Zeitspanne werden selbst in Hochauflösenden Modi nur ein paar Dutzend Pixel übertragen. Die Wahrscheinlichkeit, dass in dem Moment, in dem die Maus gerade gelöscht ist, an dieser Position Pixel übertragen werden, ist also ziemlich gering.

      Weiterhin, und das ist wesentlich gravierender, ist der Maus-Zyklus in aller Regel nicht mit dem Vertikaltakt der Grafikkarte synchronisiert. Das bedeutet: Der Maus-Zyklus dauert jeweils z.B. ungefähr eine 50stel Sekunde. Was die Grafikkarte macht, wird dabei jedoch nicht berücksichtigt. Man kann sich nun leicht überlegen, wie die Bildfolge aussieht, die von der Grafikkarte am VGA-Ausgang übertragen wird: Gelegentlich wird die Maus in zwei aufeinander folgenden Bildern an derselben Position sein.

      Das menschliche Auge ist "von Natur aus" darauf ausgelegt, bewegte Objekte zu fixieren. Wenn wir die Maus bewegen, folgen wir automatisch mit den Augen dem Mauszeiger. Das Auge geht jedoch von einer einigermaßen gleichmäßigen Bewegung aus. Die aus der fehlenden Synchronisation resultierende Unregelmäßigkeit in der Bewegung empfinden wir deshalb als unnatürlich und störend.

      An die ruckende Maus haben sich die PC-User allerdings erstaunlich gut gewöhnt. Ein Zeichen für die enorme Anpassungsfähigkeit des menschlichen Gehirnes. Man beachte: Auf fast allen "alten" Computersystemen (z.B. Atari ST, Amiga, C64) war die Maus synchronisiert!

      Was machen nun Spiele anders?

      Zum Ersten werden gewöhnlich wesentlich mehr Objekte als nur ein Mauszeiger bewegt. In 3D-Spielen wird sogar grundsätzlich das gesamte Bild immer wieder komplett neu berechnet. Das "Aussetzer-Problem", welches beim Mauszeiger kaum jemals wahrzunehmen ist, nimmt hier völlig andere Dimensionen an: Die Berechnung eines Bildes für ein 3D-Spiel läuft gewöhnlich so, dass zuerst das komplette alte Bild gelöscht wird, um dann Objekt für Objekt (bzw. Polygon für Polygon) das neue Bild aufzubauen. Ein solches komplettes Bild nennt sich "Frame". Die Anzahl der Frames, die pro Sekunde aufgebaut werden, nennt sich "Frame Rate", und wird in "Frames per second", kurz fps, gemessen. Ein solches Frame zu berechnen, ist eine der aufwändigsten Aktionen in einem Spiel. Daher sinkt häufig die Frame-Rate drastisch, wenn in dem Spiel gerade viel los ist: Der Computer schafft es einfach nicht mehr, die Frames schneller zu berechnen.

      Man stelle sich nun vor, dies alles würde direkt im Bildpuffer stattfinden. Das Ergebnis wäre ein grauenhaftes Geflacker, denn die meiste Zeit befindet sich das Bild im Aufbau. Die Bildausgabe der VGA-Karte findet jedoch während der ganzen Zeit statt. Es wäre also purer Zufall, wenn an der Stelle, an der die VGA-Karte gerade den Bildspeicher ausliest, gerade ein fertig berechnetes Bild ist.

      Aus diesem Grund wird in fast allen Spielen "Double-Buffering" verwendet: Man verwendet einen primären Puffer (=Bildpuffer), und einen Hintergrund-Puffer. Im Hintergrundpuffer wird in aller Ruhe das nächste Bild aufgebaut, während im primären Puffer das vorherige Bild in voller Pracht angezeigt wird. Sobald das neue Bild fertig ist, wird ein Seitenwechsel (page flip) ausgeführt: Damit wird der Hintergrundpuffer zum neuen primären Puffer erklärt, der alte primäre Puffer wird zum Hintergrundpuffer. Die Grafikkarten sind in der Lage, jederzeit eine solche Änderung der Addresse des Bildpuffers durchzuführen! Die laufende Bildausgabe wird dann nahtlos an derselben Pixelposition im neuen Bildpuffer weitergeführt.

      3. Wie hängen vSync und Tearing zusammen?

      Und hier sind wir auch beim Thema angelangt. Denn genau wenn das passiert, haben wir die Situation, dass "mitten im Bild" von einem Frame zum nächsten gewechselt wird. Das Bild, welches von der VGA-Karte übertragen wird, hat somit (irgendwo) eine horizontale Teilung; oberhalb ist das ältere, unterhalb das neuere Frame sichtbar.

      Wenn die Frame Rate nun wesentlich höher als die Vertikalfrequenz ist (z.B.: Vertikalfrequenz 60 Hz, Frame Rate 150 Hz), treten sogar grundsätzlich mehr als ein Page-Flip pro Vertikalzyklus auf; damit haben wir pro Bild der VGA-Karte mehrere Unterteilungen in verschiede alte Frames!

      Wenn die Frame Rate niedriger als die Vertikalfrequenz ist, haben wir gelegentlich auch Bilder ohne Unterteilung.

      Dieser Effekt nennt sich auch "Tearing", da die Frames durch die Unterteilungen regelrecht "zerrissen" werden. Dies tritt immer und grundsätzlich auf, wenn die vertikale Synchronisation deaktiviert ist.

      Wenn die vertikale Synchronisation aktiviert ist, dann bedeutet dies, dass beim Page-Flip grundsätzlich gewartet wird, bis der nächste vSync-Impuls erzeugt wird. Es wird also immer darauf gewartet, bis die VGA-Karte die Übertragung eines kompletten Bildes beendet hat, um genau in der kurzen Pause zum nächsten Bild den Seitenwechsel vorzunehmen. So wird erreicht, dass grundsätzlich nur komplette Bilder übertragen werden, und kein Tearing auftritt.

      4. Wir spielen ein bischen Counter-Strike!

      Nehmen wir nun der Einfachheit halber an, wir spielen Counter-Strike. Der Grafik-Modus ist 640x480 Pixel bei 100 Hz, vSync ist aktiviert. Wir verwenden einen Pentium 500 mit GeForce. Wenn gerade nicht viel los ist, braucht der Computer ungefähr 0.007 Sekunden, um ein Frame zu berechnen. Damit könnte er theoretisch 142 fps schaffen. Doch die vertikale Synchronisation zwingt CS dazu, bei jedem Page-Flip auf den vSync-Impuls zu warten, bevor mit dem nächsten Frame angefangen werden kann! Der Rechner langweilt sich also jeweils 0.003 Sekunden lang, bis die Grafikkarte das aktuelle Frame fertig übertragen hat. Die Frame Rate beträgt somit 100 Hz, und ist identisch mit der Vertikalfrequenz.

      Wir laufen um eine Ecke, und plötzlich steht ein Gegner vor uns. Eine Spielfigur muss nun zusätzlich zum Hintergrund dargestellt werden, außerdem benötigt die CPU mehr Leistung für die Kollisionstests. Damit dauert die Berechnung eines Frames nun etwas länger, sagen wir: 0.011 Sekunden. Damit schafft es der PC gerade eben nicht mehr, ein Frame innerhalb eines Vertikalzyklus zu erstellen! Das bedeutet, der Page-Flip verpasst jeweils einen vSync-Impuls knapp und muß 0.009 Sekunden auf den nächsten warten. Jedes Frame wird also zweimal von der Grafikkarte übertragen. Zwischen zwei Frames vergehen nun immer 0.02 Sekunden, die Frame Rate hat sich also glatt halbiert auf nur noch 50 fps!

      Dies passierte sehr plötzlich. Der Unterschied ist deutlich spürbar, selbst bei so hohen Frame-Raten. Daher haben wir vor Schreck nicht schnell genug reagiert und wurden vom Gegner erwischt. Damit wechseln wir in den Ghost-Modus, und sehen zusätzlich unsere eigenen sterblichen Überreste. Außerdem kommen noch ein paar weitere Gegner um die Ecke. Damit wird die Belastung für den PC nochmals höher: Er benötigt nun 0.023 Sekunden pro Frame. Was resultiert daraus? Jedes Frame wird 3x angezeigt, die Frame Rate sinkt auf 33.33 Hz.

      Wäre nun auf diesem PC vSync deaktiviert gewesen, wäre die Frame-Rate immer genau so hoch gewesen, wie es der PC gerade eben schafft. Die Übergänge zwischen hoher und niedriger Frame-Rate wären wesentlich weniger abrupt. Das ist der Vorteil von deaktiviertem vSync. Der Nachteil: Wir haben Tearing. Und aufgrund des Tearings werden die meisten Frames "zerrissen" dargestellt. Weiterhin: Wollten wir einem sich gleichmäßig bewegenden Objekt mit den Augen folgen, würden wir erkennen, dass aufgrund des Tearings die Bewegung nicht mehr gleichmäßig ist. Wenn die Frame-Rate höher als die Vertikalfrequenz ist, "überspringt" das Objekt gelegentlich einen Schritt seiner Bewegung. Ist die Frame Rate niedriger, wird gelegentlich ein Schritt der Bewegung doppelt (oder noch öfter) angezeigt. Auf jeden Fall ist die Gleichmäßigkeit der Bewegung nicht mehr so gegeben, als wenn vSync aktiv wäre. [WW]

      Welchen Style wollte ihr? ich
      hab sie alle drauf
      Ostküste, Westküste,
      lauf, forrest lauf!
      wer braucht den spacken der sich
      nicht als lustig macht
      wenn ein ganzes volk, ein ganzes volk bereits lacht
      du kannst es anlassen , wenn du meinst es sehe scheisse aus ...
      ich selbst habe es aus , da mir die fps wichtiger sind als die "schönheit" von cs .

      Auszug aus einem Benchmark-Test :
      Wenn die Monitorsynchronisation eingeschaltet ist, erzeugt die Grafikkarte nie mehr Bilder als die Refreshrate des Monitors ist (üblicherweise 75, 85 oder 100 Hz). Die von der Grafikkarte erzeugten Bilder pro Sekunde (frames per second = fps) können also nicht höher als diese 75, 85 oder 100 Hz sein (oder wie immer auch die Einstellung ist), selbst wenn die Grafikkarte mehr leisten könnte. Diesen Zustand nennt man Vsync ON, im Gegensatz zu Vsync OFF - in welchem die Grafikkarte ungebremst Bilder erzeugen kann, weil sie nicht mehr auf das Refresh-Signal des Monitors warten muß.

      Eine Messung mit Vsync ON zeigt also nicht unbedingt das ganze Leistungspotential der Grafikkarte auf, da jede Spitze oberhalb der Refeshrate "abgeschnitten" wird - so wird dann der Monitor ausgetestet und nicht die Grafikkarte.


      da zB mein monitor nur 85 Hz hat würde ich nie die 100 fps erreichen können .
      und für mich ist ein unterschied festzustellen ob 30 , 60 oder 100 fps .
      Eine Sekunde ist das 9.192.631.770-fache der Periodendauer, der dem Übergang zwischen den beiden Hyperfeinstrukturniveaus des Grundzustandes von Atomen des Nuklids 133Cs entsprechenden Strahlung.
      was langsamer laufen
      mit 140fps ??
      wo wohnst du
      wennde das machst
      denskte du hasten speedhack
      kannste mal weltrecort in cyberrennen aufstellen :D

      ich kann dir ja sagen wie das geht
      #waste sicher dastehen hast ist
      fps_max "101.0"
      fps_modem "0"
      das kannste mal aus spass
      fps_max "999.0"
      fps_modem "1"
      einstellen
      dann haste schon >100 fps
      und noch -developer 1- in die konsole geben
      mit dem befehl "net_graph 1"in die console
      siehste deine fps
      viel spassdamit
      F: Warum brauchen Frauen keine Uhren zu tragen?
      A: In der Küche hängt für gewöhnlich eine.
      Wenn du meinst ;) Nimm einfach mal mit (von mir aus 150 FPS) das Messer in die Hand und renn los (mach mal selber Server auf) und du wirst merken das es dir irgendwie langsamer vorkommt :)

      net_graph 1 ist kacke und frisst nur frames ;) Den würde ich nicht nehmen ... Entweder cl_showfps 1 wenn du nur die FPS haben willst oder den hübescheren net_graph 3 ;)


      greetz iCe

      PlayStation 3 ID: livedeci

      :D DoNt HaTe ThE pLaYa , HaTe tHe GaMe :D