Hässliche Ränder an Texturen

  • GM 8

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

  • Hässliche Ränder an Texturen

    Ich sitze gerade hier und bin leicht verdutzt. Mir ist dies noch nie aufgefallen und irgendwie lässt sich das auch nicht so einfach lösen.

    Ich habe eine Textur (Sand), schmeiße eine Alphamask drauf (background_set_alpha_from_background), und bekomme graue Kanten.
    [hide='Ergebnis'] [/hide][hide='Sand Textur'] [/hide][hide='Alpha Maske] [/hide]

    Das ganze geschieht in einer Surface.
    Ich habe nicht mal ansatzweise eine Idee was zu tun ist. Kennt hier jemand vielleicht das Problem und kann etwas dazu sagen?

    EDIT: mir fällt gerade auf, dass der graue transparent ist. Aber warum sollte es das werden? Die Grastextur ist ohne jegliches alpha.

    MfG Sticks

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

  • Hmh, sieht seltsam aus :/
    Weis nicht so gnaz warum dass passiert aber es könnte an einem Blend-mode liegen benutzt du einen beim drawen auf die Surface.

    Versuch vieleicht mal dass ganze ohne Surfac ezu zeichnen. Also einfach irgendwo hin. Schau mal ob es dann geht.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • 2 Punkte, die mir spontan einfallen:
    1. Surface im 3D Mode?
    2. gleiche/falsche Depth-Werte der Flächen (ergibt bei Transparenz evtl. Grafikfehler, die aber normalerweise etwas anders aussehen)
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Keine sorge, 3d ist zu dem Zeitpunkt nicht aktiv. Ich nutze die Surface nur, um die Textur zu generieren. Danach wird ein Background daraus.
    Ich könnte auch alles drawen, screen refreshen und dann einen Background aus background_create_from_screen() machen.
    Doch leider generiere ich eine Hand voller Texturen, da muss ich auch auf die Performance achten. Bzw. in dem Fall wird es eher Ladezeit ^^

    MfG SDX
  • Dieser Effekt ist ganz "normal" und weder ein Fehler deinerseits noch ein Bug des GM. Um zu verstehen was da passiert, muss man sich nur mal anschauen welche Blenden der GM im normalen Zeichenmodus verwendet. Der Grund warum es beim Zeichnen auf den Bildschirm gut geht ist einfach der fehlende Alphakanal.

    Da du anscheinend den Alphakanal der Surface nicht brauchst kannst du nach dem Zeichnen einfach mal

    GML-Quellcode

    1. draw_set_blend_mode(bm_max);
    2. draw_set_color(c_black);
    3. draw_set_alpha(1);
    4. draw_rectangle(0,0,384,384,0); // Rechteck über gesamte Surface
    5. draw_set_blend_mode(bm_normal);

    auf die Surface anwenden. Damit wird der Alphakanal maximal gesetzt ohne die Farbwerte zu verändern. Falls du mehrere Texturen drauf zeichnen willst, dann brauchst du dieses Script nur einmal am Ende ausführen und nicht nach jeder Textur.
  • Normalerweise brauchst du dafür doch keine Surface, oder hab ich was falsch verstanden?
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Ja, falsch verstanden. Ich mache ein Spiel, wo teile der Landschaft zufällig generiert wird. Dazu gehört auch ein texturgenerator, der die Landschaft mit den richtigen Texturen ausstattet (Steintexturen an steilen und schroffen Stellen, Sand in der nähe von Wasser usw). Wenn es was wird, und im Moment bin ich recht optimistisch, werde ich mir weitere Beschreibungen erspaaren können ^^

    MfG SDX
  • Benutzer online 1

    1 Besucher