software renderer



  • Hallo, ich möchte einen software renderer programmieren nach den standard mda aus dem jahr 1981.
    Ich möchte die grafik in der console mit zeichensätze ausgeben. Ich möchte nur die funktionsweise verstehen.
    Jetzt fängt mein problem an. Ich weiß nicht genau wie es das machen soll.
    Also ich mache ein array von 720 x 350 auf. Es ist doch so, dass der Grafikspeicher für jedes bild ausgelesen wird.
    Also jede veränderung wird dann ausgelesen und dargestellt. Könnte mir jemand lösungsansätze geben wie ich das machen könnte? danke

    gruß
    tori



  • Ich möchte die grafik in der console mit zeichensätze ausgeben

    "C"onsole? Dafuq? Und wieso Konsole? Weil das ja klar das dümmste unpassendste ist wenn man ne Grafik auf dem Bildschirm ausgeben will?

    Also ich mache ein array von 720 x 350 auf. Es ist doch so, dass der Grafikspeicher für jedes bild ausgelesen wird. Also jede veränderung wird dann ausgelesen und dargestellt.

    Das passt nicht zusammen. Was willst du jetzt? Und bitte ohne Verwendung von vermeintlichen Fachbegriffen.

    Und nochmal zu

    Es ist doch so, dass der Grafikspeicher für jedes bild ausgelesen wird. Also jede veränderung wird dann ausgelesen und dargestellt.

    Die Hardware macht das üblicherweise so, ja. Hat aber darauf keinen Einfluss wie man es als Programm das "auf" einem Betriebssystem läuft machen muss um ne Grafik auf den Bildschirm zu bekommen.



  • Weil ich nur die funktionsweise verstehen will. Es geht micht nicht um die grafik. Ich interessiere mich
    einfach dafür wie die ersten grafikkarten funktioniert haben. Ich möchte die grafikkarte in software nachbauen aber erstmal ganz einfach. Erstmal ein quadrat. Dann möchte ich, dass es sich bewegt.



  • Sorry aber ich glaub du hast überhaupt keinen Plan wovon du redest.
    Fängt schon bei den Begriffen an, z.B. "software renderer". Bitte google was das bedeutet.

    Und... wenn du verstehen willst wie frühe Grafikkarten funktioniert haben, dann lies es nach. Bzw. wenn du dich damit rumspielen willst dann check dir einen Emulator ala DosBox + eine Entwicklungsumgebung für DOS und probier es aus. Wobei es mit MDA wohl schwer werden wird, aber VGA kann quasi jeder Emulator.


  • Mod

    Ich vermute, es geht hier um Eigenprogrammierung der Geometrie- und Renderroutinen? Falls ja: Es gibt viele 2D Grafikframeworks, wo du gezielt Pixel setzen kannst und dich nicht darum kümmern brauchst, wie das letztlich auf den Bildschirm kommt. Oder etwas statischer kannst du in eine Bitmap hinein rendern (die sind quasi wie 2D-Arrays von Pixeln), welche sich auf jedem System relativ trivial anzeigen lassen.



  • @SeppJ
    Er schreibt

    software renderer programmieren nach den standard mda aus dem jahr 1981

    Also das hier https://en.wikipedia.org/wiki/IBM_Monochrome_Display_Adapter
    Würde mich also sehr wundern wenn er mit "software renderer" einen software renderer meint.



  • ps:
    @tori1117 sagte in software renderer:

    array von 720 x 350

    Nö. Eher 80x25. MDA hatte nämlich keinen Grafikmode.



  • kann sein, dass ich den falschen begriff genommen habe.
    ja genau es geht um Eigenprogrammierung der Geometrie- und Renderroutinen.
    Ich will alles selbst machen. Es geht mir nur ums verstehen.



  • nach den standard mda aus dem jahr 1981

    ...

    Es geht micht nicht um die grafik

    ...

    Eigenprogrammierung der Geometrie- und Renderroutinen

    Willst du uns verarschen?





  • @hustbaer sagte in software renderer:

    Willst du uns verarschen?

    Wieso verarschen?

    Als erstes möchte ich ein software renderer schreiben. Ich möchte
    verstehen wie es funktioniert und das im mda standard. Ich möchte erstmal
    kein 3d nur 2d wie rechtecke die sich bewegen.

    https://www.youtube.com/watch?v=IEbFwDv1RHU

    Später will ich dann die grafikkarte in software umsetzen aber dann
    im grafikmodus.

    Nur ich weiß nicht wie ich das umsetzen soll.

    Ich werde mal einfach anfangen



  • nimm doch die winapi mit setpixel oder vielleicht auch noch lineto. das dürfte genau das sein, was du suchst, und dann ist das immer das gleiche: pixelfarbe festlegen ->pixel ausgeben.

    oder du nimmst den alten borland 5.5 compiler, da gibt es dann gotoxy und (glaube ich) cprintf. je nachdem, was du machen willst.



  • @tori1117 sagte in software renderer:

    Wieso verarschen?

    Weil du eine extrem trollige frage stellst.



  • @Swordfish sagte in software renderer:

    Weil du eine extrem trollige frage stellst.

    sag mal gehts noch! Anscheinend weißt du nicht was das ist.
    Das ist eine normale Frage. Ich habe klar gesagt was ich will.
    Du hättet auch lösungsvorschläge geben können. Aber zu kritisieren
    ist einfacher. Egal auch wenn ich von der materie fast keine ahnung habe
    werde ich es trotzdem versuchen.



  • Ach wie schön wieder einer mehr auf der Liste



  • @tori1117

    Naja, du kriegst hier soviel Gegenwind, dass du dich mal fragen solltest, ob da nicht doch was Wahres dran ist.
    Du wirfst hier mit irgendwelchen "Fachbegriffen" um dich, die zusammen keinen Sinn ergeben.
    Vielleicht solltest du erst einmal beschreiben, was du machen möchtest. Wenn du da keinen technischen Hintergrund hast ist das ok, dann beschreib halt das Vorgehen, was du im Sinn hast.
    Aber in einem Post A zu sagen und im nächsten B erweckt den Eindruck, dass du a) null Plan hast oder b) wirklich trollen möchtest. Und dann sind die Reaktionen hier verständlich.
    Und ganz wichtig:
    Die anderen Forenteilnehmer machen das hier freiwillig, ohne Bezahlung und in ihrer Freizeit (räsuper). Wenn du hier Leute angehst nimmt der Rest das nicht so gut auf und die Bereitschaft, dir helfen zu wollen, sinkt.



  • @tori1117 sagte in software renderer:

    @hustbaer sagte in software renderer:

    Willst du uns verarschen?

    Wieso verarschen?

    Du schreibst widersprüchlich. Gerade die beiden Zitate, die hustbaer angeführt hat.

    Ich vermute mal, Du möchtest eine Grafikkartenemulation entwickeln. Ich weiß nicht wie es bei der MDA funktioniert hat, bei den alten Comodorekisten PET bzw. CBM gab es für jedes der möglichen Zeichen auf dem Bildschirm (40*25) ein Byte im Adressraum der CPU, in das man den Code des gewünschten Zeichens (0-255) gespeichert hat. Der Grafikchip, Videocontroler oder was auch immer hat dann 60 mal in der Sekunde diesen Speicherbereich gelesen und mit Hilfe des gewählten Zeichensatzbitmaps (es gab zwei zur Auswahl) die entsprechenden Videosignale für den Monitor generiert.



  • @tori1117 sagte in software renderer:

    Ich habe klar gesagt was ich will.

    ähm. nein.

    Du hättet

    na nein. Aber hätte der Hund nicht geschissen hätte er den Hasen vielleicht doch noch erwischt.



  • @DocShoe sagte in software renderer:

    Die anderen Forenteilnehmer machen das hier freiwillig, ohne Bezahlung und in ihrer Freizeit (räsuper). Wenn du hier Leute angehst nimmt der Rest das nicht so gut auf und die Bereitschaft, dir helfen zu wollen, sinkt.

    Ich weiß und ich bin auch dankbar dafür. ich helfe auch immer wenn ich kann.

    @Swordfish sagte in software renderer:

    Weil du eine extrem trollige frage stellst.

    Aber man muss auch meine seite sehen. Man interessiert sich für was wo man nicht so viel ahnung hat und wird dann als troll beschimpft. Weil "extrem" ist das nicht. Das ist auch nicht gerade schön.

    Ich merke selber gerade, dass es im anfangspost unstimmigkeiten gibt. Ich denke ich habe da zwei sachen miteinander vermischt.

    Ich will zwei sachen:

    Nummer1

    @SeppJ sagte in software renderer:

    Ich vermute, es geht hier um Eigenprogrammierung der Geometrie- und Renderroutinen? Falls ja: Es gibt viele 2D Grafikframeworks, wo du gezielt Pixel setzen kannst und dich nicht darum kümmern brauchst, wie das letztlich auf den Bildschirm kommt. Oder etwas statischer kannst du in eine Bitmap hinein rendern (die sind quasi wie 2D-Arrays von Pixeln), welche sich auf jedem System relativ trivial anzeigen lassen.

    Nummer 2

    @mgaeckler sagte in software renderer:

    Ich vermute mal, Du möchtest eine Grafikkartenemulation entwickeln. Ich weiß nicht wie es bei der MDA funktioniert hat, bei den alten Comodorekisten PET bzw. CBM gab es für jedes der möglichen Zeichen auf dem Bildschirm (40*25) ein Byte im Adressraum der CPU, in das man den Code des gewünschten Zeichens (0-255) gespeichert hat. Der Grafikchip, Videocontroler oder was auch immer hat dann 60 mal in der Sekunde diesen Speicherbereich gelesen und mit Hilfe des gewählten Zeichensatzbitmaps (es gab zwei zur Auswahl) die entsprechenden Videosignale für den Monitor generiert.


  • Mod

    Dann ist die Gegenfrage: Hast du noch weitere Fragen oder reichen dir meine und @Wade1234 s Antworten? Damit bekommst du beliebige Pixel in einem 2D-Schachbrett gesetzt und kannst mit den ersten (aber erstaunlich schwierigen) Fingerübungen anfangen, zum Beispiel eine sauber aussehende gerade Linie oder einen beliebig skalierbaren Kreis zu zeichnen.


Log in to reply