Alphamask für Surface

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Alphamask für Surface

    Hallo Leute!

    Sorry dass ich wieder ein Topic eröffne, be idem es um Surfaces und Alphatransparenzen geht.

    Also volgendes:
    Ich habe 2 Surfaces. 1 davon ist die normale surfaces mit bildern (sur_main) und die zweite Surface ist die alphamaske.
    Nun, wie schaffe ich es (per Blendmode) die Alphamaske von der Bild-Surface abzuziehen? (Sodass je nach Heillichkeitsstärke eine höhere transparenz gebildet wird?)

    Hier mal code den ich benutze:

    GML-Quellcode

    1. surface_set_target(sur_draw); //dritte surface auf die das fertige Alphabild gezeichnet wird
    2. draw_clear_alpha(c_white,0); //leere Surface
    3. draw_surface(sur_main,0,0);//Zeichne Bild
    4. draw_set_blend_mode_ext(bm_dest_color,bm_src_alpha); //Blend Mode der die alphamaske von der Bildsurface "abziehen" soll.)
    5. draw_surface(sur_alpha,0,0); //zeichne die alphamaske
    6. draw_set_blend_mode(bm_normal);//setze blendmode zurück
    7. surface_reset_target();


    Ich habe jeden erdenklichen Blendmode versucht. Hat jemand eine Ahnung wie das funktionieren könnte?
    Ich weiss dass es noch die "_get_alpha_from_" funktionen gibt, aber die darf ich aus mehreren technischen gründen nicht benutzen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von LEWA ()

  • Hi lewa,

    ich habe auch sehr sehr viele probleme mit alhpa und surfaces, und habe es letztlich so gelöst, das ich für halbtranzparente dinge ein sperates surfce anglegt habe ds einfach mit zb 0.5 alphawert gedrawed wird. Mit den abziehen fällt mir jetzt nur bm_substract ein, hab aber sleber wenig ahnug wie genau das funktiniert, bei mir kommt doch dann doch nur komischen grünes zeug raus (ja alle sprites kriegen grüntöne, manche blautöne).
  • Benutzer online 1

    1 Besucher