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

Aktuelle Zeit: Di Jul 08, 2025 13:17

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



Ein neues Thema erstellen Auf das Thema antworten  [ 32 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste
Autor Nachricht
 Betreff des Beitrags: Wieso ist OpenGL so lahm?
BeitragVerfasst: Di Aug 15, 2006 15:15 
Offline
DGL Member

Registriert: Fr Aug 11, 2006 12:52
Beiträge: 9
Hi. Ich habe mein erstes Projekt angefangen, einen Tetrisclone (nicht lachen) und soweit funktioniert das Teil auch schon ganz gut.
Aber obwohl ich noch nicht einmal Texturen, Lichtquellen oder andere hippe Grafikfeatures eingebaut habe, komme ich auf höchstens 25fps. Dazu muss man natürlich sagen, dass nebenbei die IDE, Winamp und dies und jenes läuft und zwar auf einem AMDK6-2 400 mit 384MByte RAM und TNT2 (nicht lachen!). Doch selbst wenn ich alles andere schließe bleibts so lahm. Gegenbeispiele: Half-Life, Unreal, Quake 3, Deus Ex, Hexen I + II etc.pp.
Was ist der Unterschied? Asen die nur mit asm rum? Ist die VCL zu lahm? Half-Life rendert x-mal so viele Polys wie mein kleines Tetrisspiel und zwar texturierte, so wheres the fucking problem?

Der Bombermanclone übrigens läuft auf meiner Maschine mit 5 fps. Auf meinem anderen Rechner (700 Mhz, Geforce2ti) allerdings mit 60+.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 15, 2006 15:22 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Die TNT stammt noch aus Zeiten, in denen es viele Extensions und Funktionen von OpenGL noch nicht gab, die heute nicht mehr wegzudenken sind. Eventuell verwenden der Bombermanklon und du auch solche Funktionen. Es kann dann entweder sein, dass gar nichts geht oder dass alles per Software - also auf der CPU - berechnet wird. Das kann zu sehr starken Leistungseinbußen führen. Also solltest du deinen Code vielleicht mal durchforsten auf neuere Funktionen...

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 15, 2006 16:01 
Offline
DGL Member

Registriert: Sa Okt 22, 2005 20:24
Beiträge: 291
Wohnort: Frauenfeld/CH
anzumerken ist dabei noch, das quake 3 auch mit opengl programmiert wurde ;)

_________________
bester uo-shard: www.uosigena.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 15, 2006 16:36 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 03, 2002 15:08
Beiträge: 662
Wohnort: Hamburg
Programmiersprache: Java, C# (,PhP)
Gaukler hat geschrieben:
mit opengl programmiert wurde ;)

Wie geht denn das? :shock:

_________________
(\__/)
(='.'=)
(")_(")


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

Registriert: Sa Okt 22, 2005 20:24
Beiträge: 291
Wohnort: Frauenfeld/CH
soviel ich weiss wurde quake mit opengl und einer sprache (warscheinlich c++) programmiert, zumindest habe ich immer gemeint das quake 3 mit opengl funktioniert....

_________________
bester uo-shard: www.uosigena.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 15, 2006 18:50 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Und ich habe immer gedacht, das ist allgemein bekannt und dass OpenGL bei Vielen erst durch Doom bekannt wurde. id setzt seit langem auf OpenGL und war damit in gewisser Weise sogar ein Werbeträger dafür.

Zitat:
Wie geht denn das?

Wie meinst du das? Mit OpenGL kann man ALLES machen. Naja fast alles ;)

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 15, 2006 19:13 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 06, 2005 18:34
Beiträge: 362
Wohnort: Hamburg
quake3 wurde noch mit einfachem C programmiert (und natürlich OpenGL) ...
weiß nicht ob Doom 3 schon auf C++ ist, aber carmack hat irgendwo irgendwann mal gesagt, dass er auf C++ umsteigen wolle ...

_________________
Der Mensch hat neben dem Trieb der Fortpflanzung und dem zu essen und zu trinken zwei Leidenschaften: Krach zu machen und nicht zuzuhören. (Kurt Tucholsky)
Schwabbeldiwapp, hier kommt die Grütze. (Der Quästor)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 15, 2006 19:27 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Das tut jetzt prinzipiell erstmal nichts zur Sache.

Du kannst ja mal ein rempräsentatives Stück Code posten, eventuell sieht man da auf den ersten Blick ob du Fehler machst.

Nebenbei: In Professionellen Spielen wird extrem viel Wert auf die Datenhaltung, Sichtbarkeitsprüfungen und schnelle rendertechniken gelegt. Am Anfang lernst du aber nur die einfachen Methoden Daten zu rendern. Du kannst also davon ausgehen, dass da sicherlich noch einiges optimiert werden kann. Vorallem auf Systemen wie deinem. Früher, als solche Systeme noch aktuell waren, konnten die genannten Spiele überhaupt nur laufen, weil sich Leute ihre Köpfe über optimierungen zerbrochen haben.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Aug 16, 2006 08:39 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
TNT2 ist etwas besonderes. Bei dieser Generation der Karten musst du sehr stark darauf achten was du renderst. Denn bei dieser Generation ist jedes Dreieck was man einsparen kann eine wahre Wohltat. Die hat noch kein T&L (Transformation & Lightning). Und dadurch werden alle Lichter und Transformationen auf der CPU berechnen und die Karte stellt es dann nur noch dar.

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. Da gibts so ne komische Konstante für.

Bei dem Tetris kannst zum Beispiel auch einiges an Flächen sparen in dem du nur die zeichnest die auch wirklich sichtbar sind. Also je nachdem wie du auf einen Stein drauf schaust sind es nur noch 3 Seiten. Oder aneinanderliegende Steine brauchen an der Stelle zum Beispiel keine Flöchen. Aber für den Anfang muss man darauf nicht achten.

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.

PS: Aber es wäre dennoch mal interssant zu erfahren wie du renderst. Ich denke nämlich mal, dass man da auch noch ein bisschen was rausholen kann.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Aug 16, 2006 12:05 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 03, 2002 15:08
Beiträge: 662
Wohnort: Hamburg
Programmiersprache: Java, C# (,PhP)
La Boda hat geschrieben:
Zitat:
Wie geht denn das?

Wie meinst du das? Mit OpenGL kann man ALLES machen. Naja fast alles ;)

Wieso verstehen nur immer weniger Menschen die deutsche Sprache?

Also nochmal auf Deutsch..."Seit wann kann man mit OpenGL (eine Grafik API/Schnittstelle) [b]programmieren[/p].
Hab noch keine Programmiersprache namens OGL gesehen. Klar ist dies Haarspalterei, aber es ist mindestens genauso nervig es so zu lesen. Vor allem wenn dann der Noob Next Door ankommt und wissen will wie man mit OGL eine EXE erstellt \o/

//e: /end theadhijack

_________________
(\__/)
(='.'=)
(")_(")


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Aug 16, 2006 12:15 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Wenn wir hier schon Haarspalterei betreiben: Natürlich würde Doom mit (im Sinne von "mit Hilfe von") OpenGL programmiert. Genauso wie es bestimmt mit (im Sinne von "von") einem großen Team programmiert wurde. Und mit einem Compiler kompiliert.

Um ehrlich zu sein, ich dachte auch erst, dass du sowas gemeint hast, aber nachdem ich "Wie geht denn das?" fünfmal gelesen hab, und man das auch anders formulieren hätte können, habe ich mich für ne Erklärung entschieden...

Aber wie schließen das jetzt mal lieber ab. Hilft ja keinem weiter

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Aug 16, 2006 13:07 
Offline
DGL Member

Registriert: Sa Okt 22, 2005 20:24
Beiträge: 291
Wohnort: Frauenfeld/CH
ironie ist teilweise schwer zu verstehen im internet, geh sparsam damit um *g* :D

_________________
bester uo-shard: www.uosigena.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Aug 16, 2006 13:47 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 03, 2002 15:08
Beiträge: 662
Wohnort: Hamburg
Programmiersprache: Java, C# (,PhP)
Warum stand da wohl ein Smilie hinter? Der hat schon seine Berechtigung. Wenn man aber Smilies oder Grafiken ausblendet sieht man den nicht -.-

ICh glaub ich geh wieder zu den reinen Text Smilies über, oder all die nicht vom Board unterstützt werden...

_________________
(\__/)
(='.'=)
(")_(")


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Aug 16, 2006 13:53 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Okay. Ich glaube wir haben es jetzt alle verstanden. Jetzt lasst uns mal wieder zum ursprünglichen Thema zurückkehren!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Aug 16, 2006 16:55 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 27, 2005 12:44
Beiträge: 393
Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
hallo,

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...

dj3hut1


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 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.013s | 15 Queries | GZIP : On ]