2D Animation unter OpenGL



  • Hoi,
    Ich bins schon wieder, aber diesmal mit einem ganz anderen Problem. 🙄

    Ich habe mich entschlosseen Mit SDL + OpenGL eine kleine 2D Engine zu schreiben.
    Nun habe ich eine Frage.
    Sagen wir mal eine Animation besteht aus 4 Bildern, was ist dann schneller.

    1. Ich erstelle 4 Texturen unter Ogl und klebe dann immer die gewünschte
      auf das Polygon.

    oder

    1. Ich ertelle unter Ogl eine Textur und verändere diese immer.

    Ich persöhnlich denke, dass die Idee mit den 4 texuren zwar schneller ist, aber wesentlich Speicherintensiver.

    Was meint ihr dazu?

    mfg Gnop



  • Gnop schrieb:

    1. Ich ertelle unter Ogl eine Textur und verändere diese immer.

    Und wie willst du die verändern? Vielleicht das Bild aus einer anderen Textur reinkopieren?

    Denkt doch einfach mal nach...

    Bye, TGGC (Demo or Die)



  • Ich habe es mir folgendermaßen gedacht:

    Fall 1) Ich erstelle 4 Texturen unter Ogl und klebe dann immer die gewünschte
    auf das Polygon.

    Hierbei wird folgender Speicher belegt.

    -4 mal einer Textur im Grafikspeicher
    -1 SDL_Surface im Hauptspeicher

    Hierbei wird der Grafikspiecher sehr belastet, da OpenGL die
    Texturen im Grafikspeicher unterbringt.

    Fall 2)Ich ertelle unter Ogl eine Textur und verändere diese immer.

    Hierbei wird nur

    -eine Textur im Grafikspiecher angelegt
    -ein SDL_Surface im Hauptspeicher + ein SDL_Surface als Zwischenspeicher

    In diesen Falle spare ich zwar Grafikspeicher aber dafür wird der Prozessor belastet.

    Nun wollte ich wissen, welche die schnellere Lösung ist.

    mfg Gnop



    1. Man erstellt eine Textur, mit allen Animationsbildern und verändert die Texturkoordinaten (heißen die so? Naja, u und v eben. Ich komme damit nur beim Rendern mit Povray in Berührung und da braucht man das selten)
      geloescht


  • Dann bringst halt die Texturen im Sysmem unter.

    Bye, TGGC (Demo or Die)



  • Hm der Grafikspeicher ist dazu da, dass man ihn benutzt. Also wenn du 4 verschiedene Texturen hast, dann steck die auch in den Speicher.
    Esseidenn natürlich, die bauen irgendwie aufeinander auf. Da kann man dann entsprechende Veränderungen versuchen



  • Gnop schrieb:

    Fall 2)Ich ertelle unter Ogl eine Textur und verändere diese immer.

    Hierbei wird nur

    -eine Textur im Grafikspiecher angelegt
    -ein SDL_Surface im Hauptspeicher + ein SDL_Surface als Zwischenspeicher

    In diesen Falle spare ich zwar Grafikspeicher aber dafür wird der Prozessor belastet.

    Und wo speicherst du die anderen 3 Texturen? Liest du die jedes mal wieder neu von der Festplatte? Oder im Hauptspeicher?
    Ist eigentlich glaub ich eh egal, Fall 1 ist auf jeden Fall schneller, oder das mit den Koordinaten.

    mfg.



  • Ich will wohl behaupten, Fall 3 ist der schnellste und speichersparendste (wobei das wohl nciht viel ausmacht)...
    In diesem Sinne,
    geloescht



  • Variante 3 find ich am interessantesten. Sieht einfach schicker aus, wenn die komplette Animation in einer Datei steht.


Anmelden zum Antworten