DirectX ohne 3D



  • hi

    ich wollte mal widda nen schöes altes game machen mit 3d grafiken (3d gerenderte sachen auf 2d flächen sieht reumlich aus ist aber flach)
    dafür müsste ich aber irgendwie die tiefen verzerrung also die 3d krümmung ausschalten so das ich zwar immer noch ebenen habe wie zb in Photoshop aber keine berechnunr nach dtiefe der ebene mehr habe. also x y z und z is die ebene das dann einfach mit flächen und transparenz übereinander stapeln.

    vielen dank für tipps,

    ich bin natürlich für andere wege offen oder fals von euch jemand ne andere "leichtere" game engine weis mit der das gut geht, immer her damit aber dann bitte mit tutorial 😉

    vielen dank schon mal im vorraus



  • Es gibt die sogenannten Transformed&Prelighted Vertices.

    Das heißt, du gibst die Koordinaten der Punkte und deren Farbwerte (Transparenz) direkt als Bildschirmkoordinaten an.



  • Z ist auch bei einen 2D spiel wichtig.
    Wie willst du sonst die Kolisionsabfragen machen bei spirits?
    Du kannst ja schlecht alle spirits auf die gleiche ebene setzen...
    Koennen natuerlich schon, die frage ist nur in welchem sinne.

    Gg



  • xGhost schrieb:

    Z ist auch bei einen 2D spiel wichtig.
    Wie willst du sonst die Kolisionsabfragen machen bei spirits?
    Du kannst ja schlecht alle spirits auf die gleiche ebene setzen...
    Koennen natuerlich schon, die frage ist nur in welchem sinne.

    Es ist nicht zu empfehlen, den Z-Buffer für das Sortieren von Sprites zu gebrauchen. Grund: Es gibt Probleme, sobald Alpha-Blending ins Spiel kommt, und das sollte so ziemlich bei jedem Spiel der Fall sein. Stattdessen sollte man die Sprites "per Hand" (z.B. std::sort) anhand ihrer Tiefe sortieren und dann von hinten nach vorne rendern.

    PS: Ich nehme mal an, mit "Spirits" (= Geister) meinst du "Sprites".



  • TomasRiker schrieb:

    Es ist nicht zu empfehlen, den Z-Buffer für das Sortieren von Sprites zu gebrauchen.

    Ich meinte eigentlich nicht den Z-Buffer. Ich dachte mit Z meinte er
    die Ebenen.

    TomasRiker schrieb:

    Stattdessen sollte man die Sprites "per Hand" (z.B. std::sort) anhand ihrer Tiefe sortieren und dann von hinten nach vorne rendern.

    Hmm... noch ne gute Idee.

    TomasRiker schrieb:

    PS: Ich nehme mal an, mit "Spirits" (= Geister) meinst du "Sprites".

    🤡 Hatte da was falsch im kopf. Thx.

    Gg



  • TomasRiker schrieb:

    xGhost schrieb:

    Z ist auch bei einen 2D spiel wichtig.
    Wie willst du sonst die Kolisionsabfragen machen bei spirits?
    Du kannst ja schlecht alle spirits auf die gleiche ebene setzen...
    Koennen natuerlich schon, die frage ist nur in welchem sinne.

    Es ist nicht zu empfehlen, den Z-Buffer für das Sortieren von Sprites zu gebrauchen. Grund: Es gibt Probleme, sobald Alpha-Blending ins Spiel kommt, und das sollte so ziemlich bei jedem Spiel der Fall sein. Stattdessen sollte man die Sprites "per Hand" (z.B. std::sort) anhand ihrer Tiefe sortieren und dann von hinten nach vorne rendern.

    PS: Ich nehme mal an, mit "Spirits" (= Geister) meinst du "Sprites".

    Ich nehme mal an mit Sprites meinst du auch Fanta.

    Nehmt doch einfach Davids Framework. Mit dem Rest habt ihr schon genug zu tun. f'`8k

    Gruß, TGGC (\-/ returns)



  • also das klingt ja shconmal gut aber warum sollteman die räumliche krümmung beid er kammera nicht ausschalten dürfen ? also bei 3dsmax geht das, kollisions erkennung brauche ich nicht den das spielfeld ist in begebare und nicht begebare quadrate eingeteilt.
    Und warum sollte Alpha Blending dan nichtmerh funktionieren ?



  • Kollisionserkennung hat hiermit überhaupt nichts zu tun.
    Ich habe nur gesagt, dass man den Z-Buffer nicht verwenden sollte, um die Sprites der Tiefe nach korrekt zu zeichnen (so dass die, die weiter "vorne" sind, die anderen verdecken). Der Z-Buffer kennt keine Transparenz. Angenommen wir zeichnen zuerst ein transparentes Sprite bei z=1, dann hat dieses Sprite schon seine Form im Z-Buffer hinterlassen. Wenn wir jetzt dahinter ein zweites Sprite zeichnen, werden die Pixel einfach verworfen, da sie ja vom ersten verdeckt sind. Dass das verdeckende Objekt transparent ist, kann der Z-Test nicht wissen.
    Das Ergebnis: durch das vordere Sprite scheint nur der Hintergrund durch, aber nicht das dahinter liegende zweite Sprite.


Anmelden zum Antworten