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

Aktuelle Zeit: Di Jul 15, 2025 14:39

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 32 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3  Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 17, 2006 08:12 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Das stimmt schon. Mehr als 1000 sollten da nicht zu stande kommen. Aber Treiberpoblem (andere Spiele laufen ja) oder evtl Softwaremodus und dann noch 25 Fps? Das halte ich für unwahrscheinlich. Vor allem sollte man die 400Mhz des Rechners nicht vergessen. Der muss im Vergleich zu aktuelleren Systemen ja auch noch wesentlich mehr selber berechnen. Ich könnte mir schon vorstellen, dass man mit einer ungünstigen Rendertechnik die Performance des Systems extrem weit ausbremsen kann.

Aber ich denke am Besten kann man das abschätzen, wenn man mal ein bisschen Code gesehen hat.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 17, 2006 11:55 
Offline
DGL Member

Registriert: Fr Aug 11, 2006 12:52
Beiträge: 9
Lossy eX hat geschrieben:
Du solltest in JEDEM FALL IMMER Backfaceculling aktivieren. Und Licht solltest du nach Möglichkeit nicht benutzen und wen dann dafür sorgen, dass es auch wirklich nur für die Vorderseite benutzt wird. [...]

Backfaceculling ist _natürlich_ drin und auch sonst werd ich tricksen wo ich kann.
Was Licht angeht... Dein DON'T bezieht sich hier explizit auf ogl-Licht? Irgendwann wollte ich mich auch mal an Lichter trauen. Hatte mir schon gedacht, dass Lightmaps performanter (und für meine Zwecke ausreichend) sind.

Lossy eX hat geschrieben:
Oder aneinanderliegende Steine brauchen an der Stelle zum Beispiel keine Flöchen. Aber für den Anfang muss man darauf nicht achten.

Das hab ich mir auch gedacht, so mach ichs auch, gut gell? :-)

Lossy eX hat geschrieben:
[...]Außerdem solltest du aufpassen, dass du glBegin und glEnd so sparsam wie Möglich einsetzt. Wenn ich mich daran noch recht erinnern kann ist diese Karte da auch ein wenig anfällig für. Mit anderen Worten. Wenn du deine Steine zeichnest dann mache ein mal ein glBegin und zeichne alle Flächen von allen Steinen die auf dem Bildschirm zu sehen sind und erst dann ein glEnd. Das dürfte auch schon etwas bringen.

Das ist ein guter Tipp, danke. Im Moment kriegt jedes quad noch sein eigenes glBegin()+glEnd(). Ich werde das mal austesten.

dj3hut1 hat geschrieben:
kann mir eigentlich nicht vorstellen, dass man bei Tetris mehr als 1000 Polygone benötigt.
das problem bei infinite muss irgendwo anders liegen, vielleicht ein treiberproblem...

Das habe ich mir auch schon gedacht, aber quake3 ist auch auf meinem system schnell genug, selbst in hohen auflösung mit voller fx-palette. Außerdem müsste mein anderer Rechner mit 700Mhz und Geforce2 nach meinem Empfinden mindestens 100fps erreichen, es sind nunmal echt nicht viele Polys.
Und davon mal an fiel mir gestern mal so ab, dass die framerate auf meiner 400er-Krücke bei höherem Polycount nicht signifikant sinkt, sondern konstant bleibt. Daraus folgere ich (und das obwohl ich keine Ahnung habe), dass meine GraKa nicht wirklich gefordert ist, sondern die CPU.
Aber ich habs wie im Lehrbuch (sprich wiki) gemacht und rufe über onIdle() die Renderfunktion auf. Mysteriös. Vielleicht ist der Ansatz über onIdle() zu gehen schon ein Performancekiller? Ich hab nunmal keine Ahnung.
Es scheint tatsächlich so zu sein, dass diese 20fps das Höchste ist, was die CPU leisten kann. Es gibt aber auch den umgekehrten Fall, wenn ich ein einfaches Quad mit einer Textur überziehe und dann nah heranzoome (0.2). DA bricht die Framerate ein, und wie. Paradoxerweise beobachte ich in kommerziellen Shootern den umgekehrten Effekt, wenn ich die ganze Zeit auf den Boden starre und herumlaufe ist die Framerate höher (was wohl daran liegt, dass die Engine performanter ist und überall fiese Aliens wohlanimiert auf mich zustürmen).


La Boda hat geschrieben:
Die TNT stammt noch aus Zeiten, in denen es viele Extensions und Funktionen von OpenGL noch nicht gab, die heute nicht mehr wegzudenken sind[...]

Wenn ich darüber nachdenke... neeee. Es sei denn, der ogl-header enthält so was wie [pseudocode]draw(every polygon, five times) //why not?[/pseudocode].
Ich habe im Moment nur den Core, das reine game, es werden noch nicht einmal Texturen benutzt, Licht steht auch weit hinten auf der Prioritätenliste.


Der Grund, dass ich diese Frage übrigens gestellt habe ist nicht, weil ich arge Problem damit habe, dass mein Tetrisclone auf meinem System so lahm ist, sondern weil ich es als Unsitte empfinde, ein beschissenes kleines Drecksspiel zu programmieren und dann 1ghz + aktuelle graka vorauszusetzen. Das beste Beispiel sind die diversen Pongklone, die auf alten Maschinen mit ~0,02fps laufen. Wenn ich mich hinsetze und einen Tetrisclone progge, dann will ich auch, dass ihn Leute spielen. Ich will, dass sich mein Prog auf nem Büro-Pc ausführen lässt, und wieso auch nicht? Die ganzen OpenGL-Bildschirmschoner zum Beispiel laufen absolut flüssig.
Wenn ich wirklich mal etwas machen sollte, das über "kleines beschissenes Drecksspiel" hinausgeht, werde ich spätestens dann Performanceprobleme bekommen, si?

Wenn mein Spielchen fertig ist, werd ich euch einfach mal zwingen, den Quellcode nach Performancekillern durchzusehen :)
Aber ich habe mir Mühe gegeben, alles so schlank wie möglich zu halten. Und die Framerate ist auch nicht berauschend, wenn ich nur ein simples, texturiertes Dreieck zeichne. Und selbst wenn ich intellektuell auf dem Niveau einer Butterfliege stehe, sollte es schwer bis unmöglich sein, da einen dicken Fehler einzubauen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 17, 2006 12:31 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Licht: Also wenn du Licht über Multitexturing anbringst sollte das rein theoretisch ohne signifikante Geschwindigkeitsnachteile von statten gehen. Bei allem andere hatte ich vor einer Ewgikeit mal was getestet. Ich hatte eine Hightmap mit Quads und hatte mir die FPS angeschaut. Backface Culling aus. Ging die Performace runter. Licht an. Ging wieder runter. Und bei doppelseitigem licht ging sie wieder runter. So, dass ich im Endeffket nur noch 25% Geschwindigkeit zu Backfaceculling an und Licht aus hatte.

Zitat:
Das hab ich mir auch gedacht, so mach ichs auch, gut gell? :-)

Du denkst mit. Das ist gut. :-)

glBegin + glEnd; Ähnlich verhält es sich mit glPushMatrix und glPopMatrix. Das sollte man auch sparsam gebrauchen.

20fps: Hast du rein zufällig vsync an? Ein konstante Framerate kann ich mir da eigentlich kaum vorstellen. Aber sonst würde ich mal schauen ob du 100% cpulast hast.

Was für eine Auflösung hast du eigentlich? Evtl könnte es sein, da die tnt2 ja auch nicht so viel Speicher hat, dass deine Kontexteigenschaften eher dazu führen, dass die Karte Probleme bekommt.

Evtl könnte es auch an deinen internen Strukturen liegen. Also, dass du intern vielleicht zu viel rechnest.

Und noch eine Kleinigkeit. Alte Grafikkarten sind ein wenig empfindlicher. Teilweise haben diese ein paar Eigenheiten die sich dann performencetechnisch äußerst negativ auswirken können. Dazu muss man teilweise Dinge die wissen die man heute einfach nicht mehr braucht. Und solche Systeme muss man mit Samthandschuhen anfassen. Bzw jedes Quad was man sparen kann sollte man da auch sparen. Heute. 1.000 Polygone mehr. Wen interessierts? In dem Sinne.

PS: Auf Opengl.org gibt es irgendwo noch eine Hilfe bzw ein Art Doku in der es ein Kapitel gibt welches sich mit Optimierungen beschäftigt. Evtl schaust du mal ob du das findest. Das dürfte für dich jetzt nicht uninteressant sein.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 24, 2006 18:15 
Offline
DGL Member

Registriert: Mi Aug 23, 2006 10:27
Beiträge: 42
dem thema hab ich auch komische ( in richtung schlechte ) erfahrungen gemacht.

auf meinem power rechner ( amd 2400+, gf7600gs, 512mb ram ) bringen meine bisherigen testprogramm 50-70 frames. ( dabei macht es irgendwie kein unterschied ob nur ein quad ohne textur, oder texturierte, animierte landschaften/körper dargestellt werden. )

auf nem laptop, der von p3 500mhz betrieben wird ( kA welche Graka ) und 512mb ram wurden 120fps gemessen!

sollte wohl klar sein an der stelle, dass ich die onIdle Lösung gewählt habe.

Aber wodurch kommt der doch schon grosse Unterschied bei den FPS?
Der Taskmanager meint bei mir, dass meine Anwendung 0-5% CPU Last hat. Wie ich schon sagte, OnIdle, ohne sleep.

Zwei grösste Fragen: Wieso hab ich weniger FPS? ( obwohl mein Rechner deutlich mehr Dampf hat ) und wieso wird kaum Auslastung angezeigt? Der sollte doch alle möglichen ressourcen nutzen. Oder ist ganz einfach mein Windows im Arsch und ich sollte schleunigst neu draufmachen?

.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 24, 2006 18:55 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
VSync on?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 24, 2006 19:15 
Offline
DGL Member

Registriert: Mi Aug 23, 2006 10:27
Beiträge: 42
hmmm... wenns standart an ist, dann ist es wohl an.

wo stellt man es ein? in meinem programm, oder irgendwo global in windows?
( frage, weil halt aufm laptop mehr FPS trotz schwächerer cpu gibt )
und wie man es einstellt... wenns geht simpel erklärt, ich bin gerade mal bei lektion7 im tutorial ^^"


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 24, 2006 19:30 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Im Windows, im Grafikkartentreiber.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 24, 2006 19:52 
Offline
DGL Member

Registriert: Mi Aug 23, 2006 10:27
Beiträge: 42
ähm.....

... jetzt hab ich so um 7.000 FPS ^^" ( punkt trennt die tausender soll KEIN KOMMA sein )
man kann auch übertreiben... krass.
Was mich aber etwas stutzig macht: für mich kommt es nicht so vor, als würde er wirklich sekündlich die FPS aktualisieren.

Jedenfalls schöner anstieg ( *100 )
Ich hatte schon überlegt, ob ich überhaupt an die 500 komme, aber so.

big thx!

*edit:
CPU Auslastung liegt bei 0-6%


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 24, 2006 20:08 
Offline
DGL Member

Registriert: So Aug 20, 2006 23:19
Beiträge: 564
Hab in irgendeinem Tutorial ( habs grad nich gefunden) gelesen, dass Polygonrendering lange dauert, weil bei manchen (vllt. auch allen, bin nich sicher) Grafikkarten auch in Dreiecke zerlegt werden muss ergo Rechenleistung
vllt isses das?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 24, 2006 20:20 
Offline
DGL Member

Registriert: Mi Aug 23, 2006 10:27
Beiträge: 42
da bin ich etwas überfragt.
aber wie es aussieht, hat vsync schon gut gebremst.

wieso ist eigentlich ohne vsync so schneller? ... werd mal in wiki suchen, was das fürn tier ist.

aber ich mich beunruhigt ne andere tatsache. die FPS anzeige aktualisiert sich nicht jede sekunde!
hab stoppuhr zur hand genommen... einmal wurde zB erst nach 21sek aktualisiert. dabei zeigte er 9652 FPS an... wohl eher 9652 frames in 21 sek? jedenfalls komm ich damit auf ~480fps.
FPS zählung ist die aus dem einsteiger tutorial. sprich: zeit zwischen rendern wird nicht einkalkuliert.

.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 24, 2006 20:32 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
vsync = Vertikale Synchronisation
Es werden soviele Bilder gerendert wie der Bildschirm aktuallisiert.
Das heisst, dass die Grafikkarte ein Bild rendert und dann Pause einlegt bis das Bild auf dem Monitor angekommen ist.
Andernfalls rendert die Grafikkarte ständig Bilder, sodass es passieren kann, dass die eine Hälfte des Bildes vom aktuellen Rendern ist, die andere vom vorherigen. Ist einfach ein Synchronisationsproblem, was auch bei Threads passiert.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 24, 2006 20:37 
Offline
DGL Member

Registriert: Mi Aug 23, 2006 10:27
Beiträge: 42
Danke!
Dann kann ich vsync eigentlich eingeschaltet lassen.

Denn wenn was rechenlastiges kommt hat die Grafikkarte ja genug rechenkapazität.
Also derzeit hab ich 70FPS. wenn ich dann ne grosse landschaft mit vielen objekten reinlade würde ich trotzdem bei 70FPS bleiben?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 24, 2006 20:55 
Offline
DGL Member

Registriert: Sa Okt 22, 2005 20:24
Beiträge: 291
Wohnort: Frauenfeld/CH
nein, das geht dann nach unten, je mehr du reinlädst...

_________________
bester uo-shard: www.uosigena.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 24, 2006 21:00 
Offline
DGL Member

Registriert: Mi Aug 23, 2006 10:27
Beiträge: 42
danke, dachte es würde stabil bleiben, weil meine graka ja zeit lang nichts tut und wartet, bis bild gelesen wird und somit halt viel reserven hätte... man lernt halt nie aus ^^


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 24, 2006 21:08 
Offline
DGL Member

Registriert: So Feb 19, 2006 23:46
Beiträge: 55
Vielleicht entweder Gaukler oder ich deine Frage nicht verstanden, aber wenn deine Grafikkarte ohne VSync erheblich mehr FPS hat, sind natürlich auch mit aktiviertem VSync noch entsprechende Reserven da.
Man kann auch im allgemeinen sagen dass solche Mini-Benchmarks nicht unbedingt representativ sind. Durch den Overhead kann es durchaus sein, dass die Framerate bei deaktiviertem VSync erstmal gleich bleibt wenn es ein paar Polygone mehr werden, Daher sind auch Leistungsvergleiche mit so extrem hohen FPS-Werten ziemlich unsinnig.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 32 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3  Nächste
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 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.011s | 15 Queries | GZIP : On ]