Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Für was würdet ihr euch entscheiden ? |
OpenGL |
|
58% |
[ 7 ] |
GfxLib von FreeBasic |
|
33% |
[ 4 ] |
Ist mir egal.. |
|
8% |
[ 1 ] |
|
Stimmen insgesamt : 12 |
|
Autor |
Nachricht |
Stormy

Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
Verfasst am: 16.04.2006, 16:14 Titel: OpenGL oder fbGfxLib ? |
|
|
Hi,
auf Grund der hohen Performancelast bei meinem Spiel (bei den Lichteffekten), habe ich mir überlegt auf OpenGL umzusteigen. Ich muss dazu sagen, dass ich absolut keine Erfahrung mit OpenGL habe und ich mich erst ein wenig in die Materie "reinfitzen" muss. Das würde die eigentliche Entwicklung von meiner Engine "Mystic World" erstmal verlangsamen. Allerdings wären letztenendes bessere Effekte bei besserer Performance möglich. Gerade bei alten Rechnern (600 MHz) läuft es recht langsam mit 10-25 FPS im 16bit Modus.
Ich liste mal einige Vor- und Nachteile auf, die so ein Wechsel mitbringen würde:
Vorteile:
- bessere Performance
- bessere & schnellere Effekte
- Chance, dass auch alte Rechner etwas von der Engine haben
- CPU-Entlastung
- Profitierung einer guten Grafikkarte
Nachteile:
- erstmal langsamere Entwicklung der Engine (Neulernen, etc.)
- Gebundenheit an die Grafikkarte (alte Laptopgrakas werden openGL nicht ganz unterstützen)
Ich möchte keinen über-schnellen Entschluss fassen und wollte deswegen euch fragen, was ihr davon haltet? Ich muss noch dazu sagen, dass ich mich seit den letzten beiden Tagen damit beschäftige und ich schon die Laderoutine und das Anzeigen der Tiles bewerkstelligt habe. Momentan habe ich ~300 FPS bei 640x480x32. Allerdings muss ich dazu sagen, dass ich nichts optimiert habe.
cu, Stormy _________________ +++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 16.04.2006, 16:31 Titel: |
|
|
Da muss ich gleich was sagen:
Mein Computer hat keine Grafikkarte und zum Chipsatz einen, ich nenn es mal miesen Treiber.
Gewisse Programme die OpenGL erforden laufen bei mir nicht.
(Andere aber doch ...)
Ein Kompromis wie GfxLib als Rückfallebene ist kaum möglich.
Andereseits würden sich die Ersparnisse Rechnen ....
Zitat: | Gerade bei alten Rechnern (600 MHz) läuft es recht langsam mit 10-25 FPS im 16bit Modus. |
Wäre es nicht einfacher/ein andere möglichkeit, auf alten Rechner Gewisse Effekte abzuschalten?
z.B. Deine Aufwendigen Lichteffekte?
Ich enthallte mich bis auf weiteres meiner Stimme, weil ich nicht weiss ob mein Rechner OpemGL weit genug ünterstüzt für diese Engine. |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Stormy

Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
Verfasst am: 16.04.2006, 16:51 Titel: |
|
|
Die ganzen Effekte kann man ausschalten, allerdings ist dies trotzdem langsam. Versucht doch mal selber einen 2 bis 3 640x480pixel große Buffer auf den Schirm zu werfen und messt dabei die FPS. Bei schnelleren Rechnern ist das kein Problem, da läufts mit 380 FPS in 16bit, bloß bei den CPUs der älteren Generation ist da kaum was zu machen. Man müsste irgendeinen schwarzen Voodoo unternehmen, damit das im Softwaremodus schneller geht !  _________________ +++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 16.04.2006, 17:06 Titel: |
|
|
Du bist dir schon dessen bewusst, das Freebasic auf DirectX/OpenGL zugreift wenn vorhanden?
gfxlib.txt hat Folgendes geschrieben: | ==============================================================================
Appendix E: Internal drivers
==============================================================================
As previously stated, gfxlib features its own tiny drivers to work on various
systems. Here is the list of drivers:
Win32:
DirectX
This driver is based on DirectDraw and DirectInput; it'll work
on any system that has already at least DirectX 3.0 installed.
Windows 98 is the minimum OS requirement; if you have Windows
95 this is not guaranteed to work.
The required DirectX DLLs are loaded at execution time, so
your EXE will not depend on them, being able to also run on
systems where DX is not installed (this driver will fail to
initialize there).
Supports windowed and fullscreen modes.
GDI
Basic Windows GDI driver; slower than DirectX, yet guaranteed
to always work. This is a fallback driver for when DX is not
installed.
Supports windowed mode only.
OpenGL
OpenGL driver; likely to be hardware accelerated on every system,
it always works.
Supports windowed and fullscreen modes.
...
gfxlib will always choose the best driver for your system when a new video
mode is set via SCREEN. To override driver selection, you can set the FBGFX
environmental variable to the name of the driver you want to be tried first:
on Win32 for example you could do:
set FBGFX=gdi
This way gfxlib will first try to initialize a driver named "GDI"; if given
driver fails or cannot be found, gfxlib will fallback on the usual automatic
driver selection path. |
|
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 16.04.2006, 17:26 Titel: |
|
|
aber nur indirekt, wenn du die hardware selbst direkt ansprichst ist das trotzdem schneller. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 16.04.2006, 19:21 Titel: |
|
|
Ist jetzt vielleicht die schwierigste Lösung, aber wie wäre es, wenn man zwischen
fb's gfxlib und OpenGL auswählen könnte? Vielleicht per Kommandozeilenparameter?
Wäre dann natürlich mehr Arbeit für dich...
Aber generell würde ich diese Optimierungen als letztes unternehmen und erst mal die Engine vorran bringen
jb _________________ Elektronik und Programmieren |
|
Nach oben |
|
 |
Devilkevin aka Kerstin

Anmeldungsdatum: 11.11.2004 Beiträge: 2532 Wohnort: nähe Mannheim
|
Verfasst am: 16.04.2006, 19:34 Titel: |
|
|
Also ich wäre mir da nicht so sicher ob OpenGL die CPU so sehr entlasstet. Der ganze OpenGL wird ja meist in den Grafikkartentreiber mit eingebunden und wenn Befehle kommen die von der Grafikkarte nicht unterstüzt werden dann wird die CPU die Befehle emulieren ... kommt also sehr drauf an welche OpenGL Funktionen du benutzen willst.
Ich würde also vorher unbedingt mal ein paar Tests machen, du könntest ja mal zwei kleinere Demos schreiben und ins Forum stellen - zum Testen  _________________ www.piratenpartei.de |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 17.04.2006, 08:40 Titel: |
|
|
jb hat Folgendes geschrieben: | Ist jetzt vielleicht die schwierigste Lösung, aber wie wäre es, wenn man zwischen fb's gfxlib und OpenGL auswählen könnte? Vielleicht per Kommandozeilenparameter?
Wäre dann natürlich mehr Arbeit für dich...
Aber generell würde ich diese Optimierungen als letztes unternehmen und erst mal die Engine vorran bringen |
Da bin ich andere Meinung.
OpenGL oder gfxlib, das ist keine Optimierung sondern ein Grundlegend anderer Aufbau.
Aus diesem Grund ist auch eine Wahl möglichkeit schlecht machbar, weil alles Doppelt entwickelt werden muss.
Wenn man solche Sachen nicht früh genug in betracht zieht, kommt man an einen Punkt wo ein Wechsel nicht mehr möglich ist.
Das Argument von Devilkevin passt auch.
OpenGL wird woll die Rechner stärker entlassten, bei dennen es eigentlich gar nicht Notwendig ist.
Stormy hat Folgendes geschrieben: | Die ganzen Effekte kann man ausschalten, allerdings ist dies trotzdem langsam. Versucht doch mal selber einen 2 bis 3 640x480pixel große Buffer auf den Schirm zu werfen und messt dabei die FPS. |
Dumme Frage:
Wieso must du mit 2 bis 3 640*480 grossen Buffern handieren?
Baust du das Bild jedes mal komplett auf oder arbeitest du bloss die Änderungen ein? |
|
Nach oben |
|
 |
Stormy

Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
Verfasst am: 17.04.2006, 18:52 Titel: |
|
|
@jb:
Also simultan werde ich nicht für die Effekte bei gfxlib und OpenGL arbeiten. Das würde doppelt soviel Arbeit bedeuten. Was zum Beispiel bei OpenGL mit 2-3 Zeilen erreicht wird, würde bei der Gfxlib 30 Zeilen benötigen und viel mehr Performance kosten.
@devilkevin:
Die neueren Rechner werden bestimmt OpenGL-Unterstützung haben. OpenGL war schon groß im Kommen mit Quake und Half-Life und das ist 8-10 Jahre her. Da ich übrigens nur einfache OpenGL-Anweisungen nutzen werde, die ich für meine heile 2D-Welt brauche, denke ich, dass keine Kompatibiltätsprobleme entstehen könnten.
@Michael Frey:
In der jetztigen Situation zeichne ich direkt die Tiles auf den Schirm und bei den sog. "Nachtmodus" wird der zusätzliche Buffer aktiviert, um die Farbe drüberzulegen. Es wird übrigens immer das Bild neu aufgebaut, da viele Prozesse simultan ablaufen (Animationen, NPC-Bewegung, etc.).. _________________ +++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial |
|
Nach oben |
|
 |
Stormy

Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
Verfasst am: 19.04.2006, 18:26 Titel: |
|
|
Kleines Update:
OpenGL habe ich nun testweise eingebaut. Mit dem Wechsel habe ich auch die Pixel*Pixel-Scrolling eingebaut. Die Performance ist schon erstaunlich! Auch die Effekte sind nett, wenn man sie gekonnt einsetzt... Auch bemerk ich praktisch keinen Performanceverlust..


Das gute ist auch, dass das nun im 32bit-Modus auf meiner alten Mühle (600MHz) mit ~70 fps läuft... vorher ist er nur mit 4-7 fps herumgekrochen.. _________________ +++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 19.04.2006, 18:41 Titel: |
|
|
Der Neige Effekt könnte man einsetzen, wenn die Spielfigur einen über den Durst trinkt .
Was mich Interresieren würde, wie es auf Rechnern mit billigem Chipsatz (wie bei mir ) läuft. |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 19.04.2006, 19:02 Titel: |
|
|
Die Effekte gefallen mir auch gut
Ein kleines Manko: Der Rand der Figur mit den blauen Haaren ist noch ziemlich deutlich zu sehen
jb _________________ Elektronik und Programmieren |
|
Nach oben |
|
 |
|