Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Jul 17, 2025 14:52

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 14 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Framerate Explosion
BeitragVerfasst: Mi Jul 21, 2004 14:28 
Offline
DGL Member

Registriert: Fr Jul 02, 2004 14:26
Beiträge: 32
Hi, also ich hab mir ein paar sachen auf der Basis von lektion 2 aus den einsteiger tuts zusammengebastelt, und all diese programme liefen mit 60 fps, schön und gut, eben hab ich die gleichen progs bei nem kumpel raufgespielt und bei ihm läufts mit 2000! fps.
Die progs haben nur sehr wenige dreiecke (10 oder so), also kann ich mir kaum vorstellen dass es an der hardware liegt
meine : geforce 4 460 mx und p4 2ghz
seine: ati 9800 wasauchimmer athlonxp 1,9 ghz

und die OS sind auch ähnlich , ich WinXP Home, er WinXP Prof.

...
cYa


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 21, 2004 14:42 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Nun ich glaube schon, dass seine Hardware da ein mächtiges Wort mitzureden hat. ;)

Die 9800er sind nicht von schlechten Eltern. Die Kraka hätt ich auch gern.... 8)

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 21, 2004 14:44 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Bei dir ist der V-Sync definitiv angeschaltet (FpS <= Bildwiederholrate), und bei ihm wohl nicht.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 21, 2004 14:52 
Offline
DGL Member

Registriert: Fr Jul 02, 2004 14:26
Beiträge: 32
ja, aber das prob ist, dass ich bei allem 60 fps hab, auch wenn ich nichts rendern lasse. und quake läuft mit 125...ich bin echt ratlos.
kann man irgendwie ein fps limit ins programm schreiben??


nachtrag: oh, ich hab dich überlesen SoS, sorry, wie stellt man den vsync an?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 21, 2004 16:09 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Zitat:
nachtrag: oh, ich hab dich überlesen SoS, sorry, wie stellt man den vsync an?


Da du ne NV karte is das kein prob...
ausserdem musst du den deaktivieren nich aktivieren :p
Anzeigeeinstellunge > Erweiter > GeForce MX oder wie die heisst > OpenGL Einstellungen > Vertikale Sync auf "Immer aus" stellen.
Fertig :), Vorher OK natürlich drücken :p


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 21, 2004 16:41 
Offline
DGL Member

Registriert: Fr Jul 02, 2004 14:26
Beiträge: 32
ok, ich habs gerallt, danke...nun würde mich interessieren was vsync überhaupt ist...ist es auf allen garakas 60 fps wenn mein prog vsync einschaltet??


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 21, 2004 16:54 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
V-Sync = Vertikel Synchronisation. Der Bildaufbau wird dabei an das vertikale Signal des Monitors gekoppelt. Wenn der also 60Hz schafft, dann wird dieses Signal 60x pro Sekunde "abgegeben" und es werden maximal 60 Bilder von der Grafikkarte generiert. Ist der ausgeschaltet, werden so viele Bilder wie möglich von der GPU generiert. Unter OpenGL kann man mit wglSwapInterval den VSync in der eigenen Anwendung per Hand kontrollieren.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 21, 2004 17:57 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Son of Satan hat geschrieben:
Unter OpenGL kann man mit wglSwapInterval den VSync in der eigenen Anwendung per Hand kontrollieren.

Evtl sollte für Splater noch was nachgetragen werden. ;-) Sofern es der Treiber zulässt ist es kontrollierbar. Der hat da immer noch das Sagen. Wenn dort "immer an" konfiguriert ist es egal, was du im Programm engestellt hast.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 21, 2004 18:18 
Offline
DGL Member

Registriert: Fr Jul 02, 2004 14:26
Beiträge: 32
nun gut, die animationen in meinem prog sind von der fps abhängig, weiss einer ne lösung??
sprich, 60 fps, aber was mach ich wenn ein andrer moni 75 hz hat...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 21, 2004 18:46 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Timebased Movement. Dabei wird abhängig von der zum Rendern benötigten Zeit ein Faktor errechnet den man dann auf alle zeitabhängigen Aktionen anwenden muss. Siehe dazu auch mein zweites Bomberman-Tut.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 21, 2004 22:45 
Offline
DGL Member

Registriert: Mo Apr 05, 2004 19:51
Beiträge: 105
Noch ein Hinweis am Rande: Wenn du VSync ausstellst, kann und wird OpenGL zwar mehr Bilder pro Sekunde berechnen, aber die werden nie angezeigt. Denn da bei dir die Bildwiederholrate auf 60 Hz eingestellt ist, wird das Bild auf dem Monitor 60 mal pro Sekunde aktualisiert. Wenn dann also 120 Bilder pro Sekunde berechnet werden, wird nur jedes 2. angezeigt - oder noch schlimmer: besonders bei Röhrenmonitoren kanns dir passieren, dass die eine Hälfte von einem Bild und die andere Hälfte vom anderen angezeigt wird. Das gibt dann hässliches Flimmern oder seltsame Kanten im Bild.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 02, 2004 16:53 
Offline
DGL Member

Registriert: Fr Jul 02, 2004 14:26
Beiträge: 32
also, danke für die tips, die animierten texturen laufen jetzt einwandfrei, doch bei der bewegung selbst hüpft der protagonist ab und zu ein stück zu weit:

Code:
  1.  
  2. if (keys[VK_UP]) and (dragonposy<204) then dragonposy:=dragonposy+(dragonmove*timefactor);
  3.   if (keys[VK_DOWN]) and (dragonposy>-204) then dragonposy:=dragonposy-(dragonmove*timefactor);
  4.   if (keys[VK_RIGHT]) and (dragonposx<304) then dragonposx:=dragonposx+(dragonmove*timefactor);
  5.   if (keys[VK_LEFT]) and (dragonposx>-304) then dragonposx:=dragonposx-(dragonmove*timefactor);
  6.  


timefactor ist aus dem bombermantut 2 übernommen, dragonmove ist sozusagen die geschwindikeit des drachen.
Leider "hüpft" der drache manchmal um zuviel pixel in seine richtung, was teilweise auch dazu führ dass er aus dem bild fliegt...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 02, 2004 17:03 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Sicher dass du deine Zeitberechnung auch korrekt machst? Du darfst nämlich nicht nur die Renderzeit nehmen, sondern auch andere Sachen die relevant sind, also auch aufwendigere Berechnungen auf der CPU. Und solange dann deine Framerate nicht zu niedrig wird, sollte das auch keine Probleme machen. Ansonsten solltest du vorsichtshalber den zurückgelegten Weg prüfen, damit solche Sachen nicht passieren.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 02, 2004 17:14 
Offline
DGL Member

Registriert: Fr Jul 02, 2004 14:26
Beiträge: 32
und wie immer rechtgehabt, ich hatte die zeitabfrage auf glDraw beschränkt, deswegen gings nicht, nun hab ich selbige auf die hauptschleife des programms ausgedehnt

danke


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 14 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 5 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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.009s | 15 Queries | GZIP : On ]