Plattformunabhängige Grafikroutinen mit C++



  • ( War das jetzt ironisch gemeint oder ist dir die Abkürzung für Grafikkarte wirklich nicht bekannt? )

    [quote=TGGC]
    Und die restlichen Plattformen? Am besten du benutzt einfach nur noch ein ordentliches OS. 😎

    "Direkter Zugriff" würde bedeuten das du dir selbst den Treiber schreiben musst. Denk mal drüber nach... [/quote]

    Natürlich gäbe es da noch andere Platformen wie Mac, verschiedene UNIX Varianten (wobei, basiert das neue Mac-OS nicht auf BSD...?), ...
    Aber Windows ist bekannter Maßen DIE Plattform wenn es um Spiele geht, wobei Linux immer stärker im Kommen ist. Und da ich wie gesagt selbst Linux benutzte möchte ich meine Spiele auch auf diesem OS spielbar sehen.
    Was das ordentliche OS angeht, Linux ist das vernünftigste. 😛

    Ich habe nicht daran gedacht mir einen eigenen Treiber zu schreiben, mit direkten Zugriff meinte ich eher eine Bibliothek/Funktion oder sonst was, welches mir Zugriff darauf gibt.

    Dieses von Sgt. Nukem erwähnte Framebuffer Device ist wirklich am ehesten das was ich wollte. Aber nun gut, letztendlich bin ich zu dem Entschluss gekommen, dass SDL+OpenGL global gesehen die beste Möglichkeit für hardwarebeschleunigte 3D-Spiele für Windows, Linux, Mac usw. zu entwickeln. Zwar unterstützt meine Grafikkarte kein OpenGL, aber es handelt sich hierbei ja auch nur um einen billigen Laptop. Drum muss ich wohl oder übel selbst handeln und meine Hardware austauschen.



  • TGGCs Statements über Sachen die er nicht kennt, (wie zB vernünftige Betriebssysteme) kannst Du einfach ignorieren.

    SDL/OpenGL/foobar ist wohl auch eine bessere Lösung als SVGAlib und Co., das ist einfach viel zu low-level und alt. 👎

    Und Framebuffer-Device wolltest Du bestimmt nicht. 👎

    Außerdem: Wenn die Framerates unter Realbedingungen absacken, kannst Du Dir immer noch Gedanken um die Optimierung machen; alles andere wäre Premature Optimization.



  • MAG schrieb:

    ( War das jetzt ironisch gemeint oder ist dir die Abkürzung für Grafikkarte wirklich nicht bekannt? )

    Nimm's nicht persönlich, aber: Bist Du doof?!? 😕
    Ich war der erste (und bislang einzige), der diese "Abkürzung" in diesem Thread benutzt hat, also werd' ich wohl wissen, was sie heißt... 🙄 🤡 😉



  • Hm, auch wenn keine 3D-HW vorhanden ist, spricht was gegen OpenGL? Kann ja mit Mesa gerendert werden, ist das dann wirklich so lahm?



  • durito schrieb:

    Hm, auch wenn keine 3D-HW vorhanden ist, spricht was gegen OpenGL? Kann ja mit Mesa gerendert werden, ist das dann wirklich so lahm?

    Ja.



  • MESA ist schon lahm, aber ohne HW Unterstützung wirst du auch mit Handgeschriebenem Software 3D Renderer nix besseres hinkriegen. Dafür läufts dann auf allen Platformen mit 3D HW schnell.
    Und AFAIK kriegst du mit SDL eh Zugriff auf den Grafikspeicher. bzw ein Surface das dort liegt. Und wann du willst kannst du ja mit SSE uä hineinrendern. Und Allegro ist auch nicht anders, nur das noch einige Routinen mehr dabei sind.



  • [quote="SeppSchrot"]

    MAG schrieb:

    Bei SDL bestimmt auch, aber da bin ich mir nicht sicher.

    dass die SDL in sachen grafik arschlahm ist, ist nun wirklich kein geheimnis.



  • MAG schrieb:

    Ich habe nicht daran gedacht mir einen eigenen Treiber zu schreiben, mit direkten Zugriff meinte ich eher eine Bibliothek/Funktion oder sonst was, welches mir Zugriff darauf gibt.

    Am Anfang hörte sich das aber wie die übliche Fantasie an: ich bin hart und brauch kein OGL und DX, ich mache das _direkt_.

    Bye, TGGC (NP Intelligenz)



  • Erm, nein. Das hatte nichts mit "hart sein" zu tun. Ich habe einfach nur eine Alternative gesucht.

    Hm, auch wenn keine 3D-HW vorhanden ist, spricht was gegen OpenGL? Kann ja mit Mesa gerendert werden, ist das dann wirklich so lahm?

    Ja.

    Da kann ich auch nur zustimmen. 🙂

    dass die SDL in sachen grafik arschlahm ist, ist nun wirklich kein geheimnis.

    Ja davon habe ich schon gehört. Bei mir ist es allerdings noch extremer wegen der fehlenden Hardwarebeschleunigung. Und SDL benutze ich nur für Fenster, Events, Eingabe usw. Die Grafikausgabe wird über OpenGL, also eigentlich auch hardwarebeschleunigt durchgeführt. Wie gesagt meine Grafikkarte ist schuld. 😡



  • maximAL schrieb:

    dass die SDL in sachen grafik arschlahm ist, ist nun wirklich kein geheimnis.

    Jo aber wenn ich die Grafik ueber SDL/OGL mach und das ganze dann von Mesa gerendert wird, ist das wirklich so viel lahmer als irgend ne andere Lib?

    @MAG: Was hast Du fuer eine Grafikkarte, dass Du der die Schuld in die Schuhe schieben kannst?



  • durito schrieb:

    Was hast Du fuer eine Grafikkarte, dass Du der die Schuld in die Schuhe schieben kannst?

    Ich nehme an er hat eine ohne Treiber, der HW Beschleunigung beitet.
    OpenGL ist auf meiner GeForce 4 ohne den proprietären Treiber von NVIDIA auch lahm.



  • maximAL schrieb:

    dass die SDL in sachen grafik arschlahm ist, ist nun wirklich kein geheimnis.

    Kann man so nicht sagen; SDL wrapped unter Windows zB in erster Linie DirectX, während es unter GNU/Linux - mit Hardwarebeschleunigung wohlgemerkt - durchaus brauchbar ist.



  • Er hat eine Intel IGF integrated 32 MB shared XYZ... 🕶 👍



  • nman schrieb:

    maximAL schrieb:

    dass die SDL in sachen grafik arschlahm ist, ist nun wirklich kein geheimnis.

    Kann man so nicht sagen; SDL wrapped unter Windows zB in erster Linie DirectX, während es unter GNU/Linux - mit Hardwarebeschleunigung wohlgemerkt - durchaus brauchbar ist.

    trotzdem nicht verständlich, warum ein DX wrapper so langsam ist. und warum man nicht auch unter win OGL für die grafik nutzt, ist mir auch ein rätsel...



  • maximAL schrieb:

    trotzdem nicht verständlich, warum ein DX wrapper so langsam ist. und warum man nicht auch unter win OGL für die grafik nutzt, ist mir auch ein rätsel...

    Seit wann ist SDL unter Win lahmer als DirectDraw? Höre ich zum ersten Mal.
    Naja, ganz einfach deswegen, weil Windows ja DirectDraw hat; wer SDL und OpenGL gemeinsam verwenden möchte, kann das ja tun.



  • ist DDraw denn so langsam? war mir jetzt nicht bewusst, kanns mir auch nicht recht vorstellen.
    und wenn man schon OGL für linux & co. implementiert hat, wieso dann der extra-aufwand?



  • DDraw ist nicht langsam, aber neuere Grafikkarten bzw deren Treiber sind einfach nicht mehr auf beschleunigte 2D-Sachen optimiert; darum ist DDraw teils wohl langsamer als nötig, aber dennoch fast nie zu langsam.
    Mehr als 60fps (oder auch nur 30) machen für Spiele sowieso nur begrenzt Sinn.

    Ich glaube übrigens auch nicht, dass unter GNU/Linux SDL OpenGL verwendet, wenn man nicht selbst OpenGL-Zeugs verwendet.



  • maximAL schrieb:

    und warum man nicht auch unter win OGL für die grafik nutzt, ist mir auch ein rätsel...

    Na, weil auf M$ Systemen DX nunmal mehr rult als OpenGL 🤡



  • Sgt. Nukem schrieb:

    Na, weil auf M$ Systemen DX nunmal mehr rult als OpenGL 🤡

    Bei Produkten von Microsoft übrigens auch.

    Bye, TGGC \-/



  • Ich habe eine SiS 650 mit 64 MB Shared Memory. Der letzte offizielle Treiber auf der Homepage des Herstellers ist von 2000...^^

    Neue Grafikkarten kümmern sich überhaupt nicht um 2D-Beschleunigung, weil 3D nunmal Trend ist. 🤡 Daher ist es auch besser auf DirectDraw zu verzichten und stattdessen DirectGraphics (ehemals Direct3D) auch für 2D Spiele zu benutzen.
    Auf Windows würde ich DirectX und auf Linux eben OpenGL benutzen, bei 2D-Spielen ist das durch SDL ja kein Problem. Aber für 3D-Spiele ist wohl OpenGL die bessere Wahl, nicht nur weil OpenGL meiner Meinung nach durchdachter als DirectX ist sondern auch weil man sich damit die Mühe spart für jede Plattform eine Extra-Version zu schreiben. Schließlich ist OpenGL im Gegensatz zu DirectX auf allen Plattformen lauffähig.


Anmelden zum Antworten