Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

OpenGL oder fbGfxLib ?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  

Für was würdet ihr euch entscheiden ?
OpenGL
58%
 58%  [ 7 ]
GfxLib von FreeBasic
33%
 33%  [ 4 ]
Ist mir egal..
8%
 8%  [ 1 ]
Stimmen insgesamt : 12

Autor Nachricht
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 16.04.2006, 16:14    Titel: OpenGL oder fbGfxLib ? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 16.04.2006, 16:31    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 16.04.2006, 16:34    Titel: Antworten mit Zitat

Ich sehe das auch so. Mach doch einen Kommandozeilenparameter /SparModus oder sowas, wodurch die aufwendigeren Effekte abgeschaltet werden. zwinkern
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 16.04.2006, 16:51    Titel: Antworten mit Zitat

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 ! neutral
_________________
+++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 16.04.2006, 17:06    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 16.04.2006, 17:26    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 16.04.2006, 19:21    Titel: Antworten mit Zitat

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 lächeln

jb
_________________
Elektronik und Programmieren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Devilkevin
aka Kerstin


Anmeldungsdatum: 11.11.2004
Beiträge: 2532
Wohnort: nähe Mannheim

BeitragVerfasst am: 16.04.2006, 19:34    Titel: Antworten mit Zitat

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 zwinkern
_________________
www.piratenpartei.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 17.04.2006, 08:40    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 17.04.2006, 18:52    Titel: Antworten mit Zitat

@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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 19.04.2006, 18:26    Titel: Antworten mit Zitat

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... happy 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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 19.04.2006, 18:41    Titel: Antworten mit Zitat

Der Neige Effekt könnte man einsetzen, wenn die Spielfigur einen über den Durst trinkt grinsen.

Was mich Interresieren würde, wie es auf Rechnern mit billigem Chipsatz (wie bei mir zwinkern) läuft.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 19.04.2006, 19:02    Titel: Antworten mit Zitat

Die Effekte gefallen mir auch gut lächeln
Ein kleines Manko: Der Rand der Figur mit den blauen Haaren ist noch ziemlich deutlich zu sehen zwinkern

jb
_________________
Elektronik und Programmieren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz