Transparenz und Rotieren



  • Hi, weiß eigentlich jemand, wie man mit DDraw halbtransparente und gedrehte Sprites machen kann?



  • "Von Haus aus" geht beides NICHT Du Volltrottel!!!



  • ich nehm den volltrottel zurück
    sorry ich hab dich mit jemand verwechselt 🙄
    please net böse sein 😉



  • Hi !

    @gedrehte Sprites :
    Obwohl DDraw Support für Hardware gedrehte Sprites hat, kenne ich keine Graka die dieses Feature implementiert. Du musst also wohl oder übel die Grafiken usw per Hand in Photoshop/Paintshop usw drehen.

    @Halbtransparente Sprites :
    Geht so direkt auch nicht. Du müsstest dir wenn schon per Hand eine eigene Blit Funktion schreiben, das hat aber halt den Nachteil dass du die HW Beschleunigung verlierst, der Performanceverlust liegt im Optimalfall bei MINDESTENS 10-15%



  • Du musst also wohl oder übel die Grafiken usw per Hand in Photoshop/Paintshop usw drehen.

    Angenommen, ich hätte ein 100x100 Pixel großes Sprite mit 24 Bit, also
    100 * 100 * 3 = 30.000 Bytes.
    Weil ich ca. 60 Bilder für eine feine Drehung brauche, dann wären das
    30.000 * 60 = 1.8 MB nur für ein Sprite.



  • Original erstellt von <Gozilla>:
    Angenommen, ich hätte ein 100x100 Pixel großes Sprite mit 24 Bit, also
    100 * 100 * 3 = 30.000 Bytes.
    Weil ich ca. 60 Bilder für eine feine Drehung brauche, dann wären das
    30.000 * 60 = 1.8 MB nur für ein Sprite.

    Hi !
    Du brauchst sicher nicht 60 Bilder für eine Drehung. C&C verwendet AFAIK 16 Stufen für die Panzer usw und keiner bemerkt die Drehung.
    Starcraft verwendet 8 Stufen und es fällt nicht sonderlich negativ auf.



  • Ist das wirklich die einzige Möglichkeit?

    Ich wollte mir nen kleinen WeltraumShooter zusammenbasteln, wofür ich natürlich das Raumschiff drehen muss, wenn ich ne kurve flieg.

    Dann müsste ich also bei "links" und "rechts" immer die bilder tauschen?

    Das ist aber umständlich... 😕



  • Doch, es geht anders, du kannst die Bilder auch softwaremäßig drehen. Dazu musst du halt mit sin/cos arbeiten. Da dies aber ziemlich zeitaufwändig sollte man die bilder beim start temporär speichern!


  • Mod

    du kannst in jeder axe spiegeln, somit hast du nur 1/4 der bilder.

    an sich ist das drehen per cpu nur soo aufwenig, jedenfalls ist nicht sin/cos das problem, sondern eher der speicher den auslesen willst. am besten wäre es, wenn du 16bit oder 8bit grafiken nehmen würdest, dsas sparrt dann schonmal viel für die performance.
    beim rotieren berechnest du nur 1mal cos/sin und verwendest dann deren wert die ganze zeit um ein ganzes sprite zu rotieren (nicht pro pixel neu berechnen)

    rapso->greets();


Anmelden zum Antworten