Gesamtbild verdunkeln per Alpha Blend ?



  • Hallo,

    Ich möchte in mein Spiel, das noch mit DirectX 7 (wegen DirectDraw) arbeitet, den gesamten Bildschirm (währende der Nacht) verdunkeln.
    Kann ich dies mit Hilfe von Alpha Blending machen ?
    Vielleicht kann ich mit IDirectDrawSurface::Blt am Schluss einfach einen Dunklen Schatten darüberzeichnen, nur wie ?!?!?
    Bitte wenn möglich mit Code.

    (Hinweis: Alle Bitmaps neu zu laden dauert zu lange.)

    Vielen Dank für eure Hilfe.



  • Mach doch z.B. ein schwarzes Rechteck, so gross wie das Gesammtbild, über die Szene. Dann mit alpha-Blending mal mehr mal weniger transparent. Das geht gut, auch schon so gemacht 😉



  • wie kann ich das Bild dann mit IDirectDrawSurface::Blt blitten ?
    Ich habe bisher noch nicht mit AlphaBlending gearbeitet.
    Könnt ihr mir bitte ein bisschen Code senden, der eine Bitmap transparent zeichnet.
    (2D Grafik, DirectDrawSurface7 )

    Vielen Dank.



  • Das geht nicht.

    Bye, TGGC (Dem beste BdT)



  • In dem Fall würde ich mal wieder empfehlen die Gamma-lookup Tabelle zu ändern.

    Hier schonmal ein Ansatz, weil unter DirectDraw ist das ein wenig frickelig:

    LPDIRECTDRAWGAMMACONTROL lpDDGammaControl = NULL;
    PrimarySurface->QueryInterface(IID_IDirectDrawGammaControl,(void **)&lpDDGammaControl);
    


  • Verwende doch Direct3D!! Und statt einem surface nimmst du ne textur!! Dann ist das alles viel einfacher! einfach Renderstats richtig setzten und das schwarze rechteck drüberblenden oder gleich mit lighting... aber das drüberblenden ist wahrscheinlich für anfang leichter... musst dir halt dirct3d durchlesen...mit code kann ich leider nicht dienen denn die dx zeit ist schon recht lange vorbei bei mir... ich verwend jetzt hauptsächlich opengl weil es recht einfach ist die grund sachen zu erledigen... (bei komplizierten effekten ist das nichtmehr ganz so aber sonst schon) Opengl könnt ich dir sofort code posten aber das wird dir nicht wirklich helfen 😉

    Na vielleicht findet sich noch ein hilfsbereiter foren-member!

    mfg Manuelh87


Anmelden zum Antworten