Softwarerenderer programmieren



  • Hallo, ich möchte verstehen wie Grafikprogrammierung funktioniert. So wie in den 80 er programmiert wurde.
    Ich möchte alles bis ins kleinste Detail verstehen. Deshalb möchte ich keine Grafikapi verwenden.
    Ich habe in C++ Grundkenntnisse. Denke mal, dass ich da noch einiges lernen muss.
    Mein Ziel ist es ein Viereck von rechts nach links zu bewegen und eventuell einmal Pong zu programmieren.
    Ich weiß jetzt nicht ob ich das in C++ oder in einem C64 Emulator machen soll?

    Gruß
    Tori



  • Beinahe hätte ich jetzt geschrieben, auf dem C64, weil dessen BASIC schon solche Zeichnen-Funktionen hatte. Aber die gab es erst ab Basic v3.5. Im Basic 2.0 des C64 musstest Du die Punkte selbst in den Bildschirmspeicher poken. Also um die Algorithmen würdest Du dort auch nicht rumkommen. Gab aber schnell entsprechende BASIC-Erweiterungen von den Usern.

    Also im Grunde kannst Du Rechtecke zeichnen und bewegen auf jeder Oberfläche, die einen visuellen Output erlaubt.
    Sogar auf Papier mit einem programmierbaren Taschenrechner. Trägst die Punkte ein, die der Taschenrechner Dir auswirft. Blatt für Blatt. Beim Daumenkino damit hast Du dann eine Animation.



  • EDIT: Sorry. Was ich sagen wollte, die Sprache ist egal, weil die Algorithmen im Großen immer die selben sind. Kannst nach Sympathie entscheiden.



  • Das ist doch eh ziemlich trivial, ich würde "Rechtecke zeichnen" nicht als Renderer bezeichnen. Sicher, dass du nicht was komplexeres machen willst? Dann würde sich auf jeden Fall auch eine sinnvollere Umgebung wie C++ anbieten.



  • Möchte ja damit ein Pong Spiel schreiben.
    Vielleicht auch einen 3d Würfel.
    Ich möchte verstehen, wie Grafikprogammierung funktioniert.
    Da ich da überhaupt keine Ahnung habe.



  • Ich wills mal versuchen.

    Der Anfang ist ein Punkt. Verbunden mit einem anderen Punkt ist es eine Linie. Wie stellst Du diese Linie dar in einem Feld voll Pixel?

    Dafür gibt es Algorithmen wie den Bresenham-Algorithmus.

    https://de.wikipedia.org/wiki/Bresenham-Algorithmus

    Deine Aufgabe ist es nun, solche Algorithmen mit der Sprache Deiner Wahl umzusetzen.



  • Vielen Dank der Bresenham Algorithmus hat mich viel weiter gebracht.


  • |  Mod

    Ich empfehle dir PixelToaster, damit kann man in wenigen minuten ein triviales Fenster erstellen und Pixel ausgeben. (input bietet PixelToaster ebenfalls, und ist cross platform)



  • @tori1117 sagte in Softwarerenderer programmieren:

    Hallo, ich möchte verstehen wie Grafikprogrammierung funktioniert. So wie in den 80 er programmiert wurde.

    Kleiner Hinweis: In den 80ern liefen viele Spiele überhaupt nicht im Grafikmodus. Da wurde aus vielerlei Gründen der Textmodus als Grafik eingesetzt (indem man die Zeichen passend umdefinierte).



  • Das stimmt. Die meisten aber, die nach Spiele oder Grafik programmieren in den 80ern auf dem C64 fragen, gehen von "per Hand" gezeichnete Linien aus.