Wiz SDL und OpenGL

Programmieren in C++
Autor
Nachricht
Benutzeravatar
profpaule
5 Bit
Beiträge: 54
Registriert: Fr Mai 11, 2007 19:21
Wohnort: in meine kabuff
Kontaktdaten:

Wiz SDL und OpenGL

#1 Beitrag von profpaule » Mi Jun 17, 2009 11:32

Tach,

Ich hatte ursprünglich geplant, Raycasting für mein kleines Projekt fürn Wiz zu verwenden, aber wie's scheint schafft selbst mein Laptop mit 2.4gHz nicht mehr als 74 fps (Floorcasting ist seeeehr langwierig). Deswegen will ich jetzt OpenGL verwenden, bekomme das aber nicht zum Laufen. Gibts da eine Anleitung zum Installieren der Libs usw.? Wenn ich SDL_opengl.h include, dann hab ich ja immernoch nicht die richtige Lib dazu gelinkt. Wie heisst die? Ich hab hier ne OpenGL SuperBible rumzuliegen, aber die scheint GLUT zu verwenden. Ich will hingegen die in SDL eingebauten Funktionen für Events usw. verwenden. Hab ich da evtl. etwas nicht richtig verstanden?

Wenn man mir jetzt hingegen sagen würde, dass man ein Rollenspiel auch ohne Boden und Decke, so a la Wolf3D zocken könnte, dann würde ich meine Raycastingfunktionen natürlich beibehalten. Was meint ihr? Ach mist, ich seh grade, dass selbst ohne Floorcasting nur max. 100-150 fps drinne sind (Wie gesagt: auf meinem Laptop, ich weis nicht, wie repräsentativ das ist). Ich denke, dass ich mir langsam mal nen Wiz kaufen sollte, um das selber zu testen.

MfG.
Paul
Zuletzt geändert von profpaule am Do Jun 18, 2009 18:51, insgesamt 2-mal geändert.

Benutzeravatar
Thrake
11 Bit
Beiträge: 2400
Registriert: Do Aug 25, 2005 21:08
Wohnort: München
Kontaktdaten:

Re: Wiz SDL und OpenGL

#2 Beitrag von Thrake » Mi Jun 17, 2009 12:27

Programmierst du unter windows oder Linux?

Benutzeravatar
profpaule
5 Bit
Beiträge: 54
Registriert: Fr Mai 11, 2007 19:21
Wohnort: in meine kabuff
Kontaktdaten:

Re: Wiz SDL und OpenGL

#3 Beitrag von profpaule » Mi Jun 17, 2009 16:40

Die Frage verstehe ich nicht, aber ich nutze Windows, programmiere jedoch für Linux.

Benutzeravatar
Thrake
11 Bit
Beiträge: 2400
Registriert: Do Aug 25, 2005 21:08
Wohnort: München
Kontaktdaten:

Re: Wiz SDL und OpenGL

#4 Beitrag von Thrake » Mi Jun 17, 2009 17:50

profpaule hat geschrieben:Die Frage verstehe ich nicht, aber ich nutze Windows, programmiere jedoch für Linux.
Das war meine Frage ;)
Ich wollte wissen, ob du Windows nutzt. Natürlich programmierst du (wenn du für die Wiz programmierst) für Linux.
Leider kann ich dir somit nicht helfen.

Benutzeravatar
profpaule
5 Bit
Beiträge: 54
Registriert: Fr Mai 11, 2007 19:21
Wohnort: in meine kabuff
Kontaktdaten:

Re: Wiz SDL und OpenGL

#5 Beitrag von profpaule » Mi Jun 17, 2009 18:10

Verstehe :). Welche Libs nutzt du denn unter Linux. Statische oder dynamische und wie heissen die Teile?

Benutzeravatar
ElectronicPirate
9 Bit
Beiträge: 597
Registriert: Fr Jun 12, 2009 10:52
Wohnort: Aachen

Re: Wiz SDL und OpenGL

#6 Beitrag von ElectronicPirate » Mi Jun 17, 2009 18:21

Die nötigen Header- und Librarydateinen hast du höchst wahrscheinlich schon alle auf dem Rechner, wenn du eine IDE wie Visual Studio oder CodeBlocks auf deinem Rechner installiert hast.
Sprich, die nötige SDL-Library muss du nur noch bei den Compiler/Linker Optionen deiner IDE miteinbinden; der Klassiker unter den nervigen Fehlern beim programmieren^^

mehr dazu hier


EDIT: Apropo, mit was hast du dein Raycasting bis jetzt programmiert(oder meinst du Raytracing)? Weil ich sag dir ganz ehrlich, allein mit einem Wechsel der Grafikbibliothek wirst du nicht das Leistungsplus rausholen, dass du dir wahrscheinlich vorstellst und wünscht...wenn man nicht gerade von Basic auf C++ wechselt. Wer mal eine Informatikvorlesung besucht hat, weiß, dass Codeoptimierung viel mehr an Leistungsfähigkeit bringt, als die Rechenleistung zu erhöhen. Klingt verdreht, ist aber so - kann man leicht nachrechnen, einfach mal "Vergleich Bubble Sort und Quick sort" googlen. Quick sort wird auch auf einem nur halb so starken Rechner immer noch schneller laufen, als Bubble sort, weil gute Programmierung wesentlich mehr ausmacht, als die Leistung des Zielsystems.
Zuletzt geändert von ElectronicPirate am Mi Jun 17, 2009 18:37, insgesamt 1-mal geändert.
THE END IS NIGH
Bild

Bild

Benutzeravatar
profpaule
5 Bit
Beiträge: 54
Registriert: Fr Mai 11, 2007 19:21
Wohnort: in meine kabuff
Kontaktdaten:

Re: Wiz SDL und OpenGL

#7 Beitrag von profpaule » So Jun 21, 2009 14:16

Noch mal ne neue Frage: Welche Libs sind eigentlich auf dem Wiz standartmässig installiert? Gibts da Glut, Glu oder Gl? Ist SDL_opengl.h besser als glu.h oder sind das komplett unterschiedliche Dinger? (Und ja, ich weis das sind beides Header.)
Gibts da ein nettes Tut für OpenGL aufm Wiz? Meine SuperBible nutzt nur gl.h und glu.h .

Tut mir leid, ich bin auf diesem Gebiet noch ziemlich neu.

Nochmal kurz: Welche Header und welche Libs (systemunabhängig), damit das Zeug auf dem Wiz ohne Probleme lauffähig ist?

Benutzeravatar
ElectronicPirate
9 Bit
Beiträge: 597
Registriert: Fr Jun 12, 2009 10:52
Wohnort: Aachen

Re: Wiz SDL und OpenGL

#8 Beitrag von ElectronicPirate » So Jun 21, 2009 14:52

SDL besitzt je nach Zielsystem verschiedene Abstraktionsebenen; sehr einfach gesagt: Beim Compilieren sucht sich der Compiler von selber die richtigen Bibliotheken und Funktionen zusammen. Sprich, welche Bibliothek die Wiz schlussendlich nutzt, braucht dich nicht zu kratzen, das macht der Compiler, falls alles richtig eingestellt ist.

reines OpenGL, GLU, GLUT und SDL sind verschieden; SDL auf OpenGL kann man grob mit MFC auf Win32-API vergleichen. SDL ist aber komplett in C geschrieben. Eine SDL Funktion tut nichts anderes als mehrere OpenGL Funktionen zusammen zufassen, um dem Programmierer da etwas Arbeit abzunehmen.

Wenn du schon auf Windows mit GLU programmiert hast, wird dir der Umstieg auf die Wiz nicht schwer fallen; guck dir halt die Dokumentation von SDL an, paar Beispielcodes...wie gesagt, du musst nur den richtigen Compiler verwenden, dann kannst du die Output Datei direkt auf die Wiz übertragen und testen.

Im Archiv findet sich folgendes Codebeispiel: http://dl.openhandhelds.org/cgi-bin/gp2 ... ,0,46,1047
Vielleicht hilft dir der Guide hier weiter: http://wiki.gp2x.org/wiki/Setting_up_a_ ... _(Windows)

Musst halt die entsprechenden Dateien für die Wiz ersetzen
THE END IS NIGH
Bild

Bild

Benutzeravatar
Jan-Nik
8 Bit
Beiträge: 294
Registriert: Mo Jan 05, 2009 12:06

Re: Wiz SDL und OpenGL

#9 Beitrag von Jan-Nik » Mo Jun 22, 2009 10:31

So wie ich das verstanden gibt es noch keine funktionierende OpenGL Lib für den Wiz. Auch ein funktionierendes Beispiel hab ich noch nicht gesehen. Ich zitiere mal Pickle: "Just be aware the opengles support is a mess, gph is been silent of late on the issue too." (http://www.gp32x.com/board/index.php?sh ... 5&start=45)

Benutzeravatar
profpaule
5 Bit
Beiträge: 54
Registriert: Fr Mai 11, 2007 19:21
Wohnort: in meine kabuff
Kontaktdaten:

Re: Wiz SDL und OpenGL

#10 Beitrag von profpaule » Mi Jun 24, 2009 10:56

Der Wiz unterstützt doch nur OpenGL ES, welches zum Beispiel kein glBegin() und glEnd() kennt, richtig? Wenn ich mir jetzt die Beispiele auf libsdl.org angucke werden dort aber genau diese Funktionen benutzt.

Ist das jetzt total egal, weil die SDL DLLs auf dem Wiz diese Befehle total anders handhaben, oder wie?

Die Links sind übrigends nutzlos, da sie nur andere SDL-Funktionen behandeln bzw. garnichts mit Programmierung an sich zutun haben.

Und noch was: EvilDragon hat mir ans Herz gelegt, OpenGL statt meiner selbstgeschriebenen 3D-Funktionen zu benutzen, daher gehe ich davon aus, das OpenGL schon laufen sollte. Hier: http://en.wikipedia.org/wiki/GP2X_Wiz steht übrigends, dass der Wiz OGL unterstützt. Jetzt stellt sich wieder die Frage nach der Quelle...

Benutzeravatar
GernotFrisch
7 Bit
Beiträge: 230
Registriert: Di Aug 28, 2007 11:53
Wohnort: neben dem ED ;)
Kontaktdaten:

Re: Wiz SDL und OpenGL

#11 Beitrag von GernotFrisch » Mi Jun 24, 2009 11:18

der Wiz kann OpenGL|ES. Es gibt Demos von GPH, die das klar belegen. Allerdings ist der Treiber eine Katastrophe, weil fast nichts läuft und wenn man irgendwie vom Demo abewicht schepperts (mein Code läuft 100% auf iPhone mit OpenGL|ES, auf dem Wiz nichtmal annähernd). Hier ist noch viel Arbeit Seitens GPH nötig. (Meine Erfahrung - evtl. beweist jemand das Gegenteil)
GLBasic
Basic for gamers

Benutzeravatar
Jan-Nik
8 Bit
Beiträge: 294
Registriert: Mo Jan 05, 2009 12:06

Re: Wiz SDL und OpenGL

#12 Beitrag von Jan-Nik » Mi Jun 24, 2009 12:00

profpaule hat geschrieben:Der Wiz unterstützt doch nur OpenGL ES, welches zum Beispiel kein glBegin() und glEnd() kennt, richtig?
Jep, genauso wie die Pandora oder das iPhone.
Wenn ich mir jetzt die Beispiele auf libsdl.org angucke werden dort aber genau diese Funktionen benutzt.
Das zeigt, wie schlecht die Beispiele sind. glBegin und glEnd sind z.B. seit OpenGL 3 als "deprecated" deklariert (sollten afaik eigentlich komplett entfernt werden). Du musst stattdessen Vertex Arrays benutzen, such mal nach OpenGL ES Tutorials, da wird das erklärt.
Und noch was: EvilDragon hat mir ans Herz gelegt, OpenGL statt meiner selbstgeschriebenen 3D-Funktionen zu benutzen, daher gehe ich davon aus, das OpenGL schon laufen sollte. Hier: http://en.wikipedia.org/wiki/GP2X_Wiz steht übrigends, dass der Wiz OGL unterstützt. Jetzt stellt sich wieder die Frage nach der Quelle...
Da steht auch nur, dass er OpenGL ES unterstützt. Als Quelle ist u. a. folgende Seite angegeben: http://www.linuxfordevices.com/c/a/News ... wend-PMPs/

UnshavenBastard
3 Bit
Beiträge: 15
Registriert: Mo Sep 07, 2009 14:25

Re: Wiz SDL und OpenGL

#13 Beitrag von UnshavenBastard » Mo Sep 07, 2009 14:49

Ich hatte ursprünglich geplant, Raycasting für mein kleines Projekt fürn Wiz zu verwenden, aber wie's scheint schafft selbst mein Laptop mit 2.4gHz nicht mehr als 74 fps (Floorcasting ist seeeehr langwierig)
Auf welcher auflösung? Auch 320x240 wie aufm gp2x ?
Dann muss das noch stark zu optimieren sein.
Falls du code aus nem tutorial übernommen hast, ist der evtl. nur anschaulich, aber alles andere als optimal.
Ich hab damals, ca. 1999 auf meinem AMD K6-300 oderso bei 320x240 mit meiner "aufgemotzten wolf3d style engine" mit texturierten böden/decken die bei dieser auflösung mit meinem monitor max zu erreichenden 120fps @ 320x240 gehabt, keine ahnung wie es ohne vsync gewesen wär ^^ Da sollte ein 2.4 GHz teil schon etwas mehr machen.
Allerdings hab ich die innersten schleifen mit x86-Assembler optimiert, der code ist für ARM maschinchen nutzlos - andererseits hatte ich damals ne nicht-optimierende version des MSVC6 compiler, da ists nich schwer besser zu sein mit grundlegendem assembler (ein guru bin ich nicht) - gcc könnte da genug rausholen, also ist vllt der algorithmus nicht toll.

Ich rate zwar mal, dass du inzwischen schon diese provisorischen / inoffiziellen opengl es libraries benutzt, hm?
Falls du trotzdem noch interesse dran hast, die software engine schneller zu machen (zB. damits auch für die älteren gp2x leutchens funktioniert), kannste den entsprechenden code ja mal hier reinwerfen.
Vielleicht sollte ich auch nochmal meinen alten raycaster ausgraben und schauen, ob der wirklich so schnell war, wie ich glaube *g* aber ich fand den trotzdem noch zu langsam, sowas muss ja auf nem 386 laufen wenns richtig optimiert ist, also bei dir sollte auf jeden fall noch ordentlich was rauszuholen sein.

Wilson
4 Bit
Beiträge: 29
Registriert: Mo Okt 06, 2008 10:59

Re: Wiz SDL und OpenGL

#14 Beitrag von Wilson » Di Sep 08, 2009 13:17

Jan-Nik hat geschrieben: Du musst stattdessen Vertex Arrays benutzen, such mal nach OpenGL ES Tutorials, da wird das erklärt
Oder Vertex Buffer Objects. ;)

UnshavenBastard
3 Bit
Beiträge: 15
Registriert: Mo Sep 07, 2009 14:25

Re: Wiz SDL und OpenGL

#15 Beitrag von UnshavenBastard » Di Sep 08, 2009 17:32

Oder Vertex Buffer Objects
bringen die eigentlich auf solchen systemen tatsächlich vorteile?
Wenn es keine getrennten system-RAM und VRAM, sowie einen flaschenhals dazwischen gibt, sondern alles im gleichen dicken RAM block liegt (ist das bei zb. dem wiz so? habe mich mit der architektur solcher geräte nicht so genau befasst) ?

Antworten

Zurück zu „C++“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast