Outline a background (mit Shader)

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

  • Outline a background (mit Shader)

    Hallo!

    Ich versuche mit Hilfe eines einfachen Shaders einen Background weiß zu umranden. An und für sich funktioniert das auch so, wie ich es möchte, nur dass zusätzlich ein paar weiße Punkte/Flächen gezeichnet werden, die eigentlich gar nicht sein sollten (siehe Anhang).

    Fragment Shader Code:

    GML-Quellcode

    1. varying vec2 v_vTexcoord;
    2. varying vec4 v_vColour; // (r,g,b,a)
    3. void main()
    4. {
    5. vec4 OG = texture2D(gm_BaseTexture,v_vTexcoord);
    6. vec4 Colour = vec4(1.0,1.0,1.0,OG.a*0.1);
    7. gl_FragColor = Colour;
    8. }
    Alles anzeigen


    Outline Code:

    GML-Quellcode

    1. xx = xx+width/2-(background_get_width(back)*scale)/2;
    2. yy = yy+height/2-(background_get_height(back)*scale)/2;
    3. shader_set(shd_white);
    4. for (i=outline;i>-outline-1;i--)
    5. {
    6. for (j=outline;j>-outline-1;j--)
    7. {
    8. draw_background_ext(back,xx+i,yy+j,scale,scale,0,-1,1);
    9. }
    10. }
    11. shader_reset();
    12. draw_background_ext(back,xx,yy,scale,scale,0,-1,1);
    Alles anzeigen


    Da ich mich sehr schlecht mit Shadern auskenne, wollte ich fragen, ob vielleicht jemand eine Idee hat, woran diese ungewöhnlichen weißen Flecken liegen könnten.

    Danke schon einmal im vorraus,

    NONO120.
    Bilder
    • Molotov.JPG

      25,88 kB, 497×526, 425 mal angesehen
  • Ich weiß zwar nicht genau, was du mit "Artefakten" meinst, aber alles außer dem eigentlichen Bild ist vollkommen transparent. Ich habe auch versucht das Bild als png, jpg, gif und bmp abzuspeichern, oder das Bild herauszuschneiden und auf einen neuen komplett transparenten Hintergrund zu setzen. Allerdings hat nicht davon etwas an dem Resultat geändert...
  • Jpg Dateien haben z.B. oft das Problem, dass durch das Komprimieren Fehler im Bild entstehen können. Das wären Artefakte. In der Fotografie können Artefakte in Bildern ebenfalls auftreten. Bin mir nicht ganz sicher, aber ein lens Flare auf dem Foto müsste auch als Artefakt zählen.
    Aber zu deinem Problem: entstehen die ungewollten Linien am Rand des Bilds? Also ist das Bild da zu Ende? Es könnte nämlich auch sein, dass es was damit zu tun hat wie GM die Sprites auf die Texturen packt. Du musstest im spritesheet den Rand um die Sprites anpassen.. Das geht glaub ich aber nur mit der pro Version. Ich schau später mal am PC nach. Mein remote Zugriff auf den PC läuft von meinem Tablet aus momentan nicht gescheit :-\
  • Nein das Bild ist an den Stellen, wo die Fehler auftreten nicht zu Ende (zumindest bei diesem nicht). Ich habe das Problem nämlich bei ungefähr 50 unterschiedlichen Bildern, die alle sehr ähnlich sind (Waffe auf transparentem Hintergrund). Allerdings treten die Fehler bei allen Bilder unterschiedlich auf - an anderen Positionen, mal stärker, mal schwächer im Gegensatz zu den anderen Bildern. Die Fehler bei den Bildern an sich ändern sich allerdings nie (also nichts Zufälliges).
    Bilder
    • Molotov1.JPG

      50,57 kB, 559×442, 354 mal angesehen
    • AWP.JPG

      30,6 kB, 625×454, 357 mal angesehen
    • AWP1.JPG

      39,4 kB, 580×460, 324 mal angesehen
    • Karambit.JPG

      25 kB, 550×485, 355 mal angesehen
    • Karambit1.JPG

      49,51 kB, 596×491, 357 mal angesehen
  • So, ich hab mal kurz bei mir am PC nachgeschaut. Also ich glaube nach wie vor, dass es was mit den Texturen zu tun hat. Es ist z.B. möglich, dass GameMaker die Sprites "erweitert" um sie besser nahtlos aneinander gezeichnet werden können. Zumindest machen andere Programme das so.. auf mich wirkt es jedenfalls so.. Ich hab mal nen Screenshot angehängt. In den Global GAme Settings kannst du (k.A. ob das nur in der Pro-Version funktioniert.. musst du mal schauen) die settings für die Texture Groups ändern. Versuch da mal die "Texture Boarder Width (Pixel)" zu erhöhen und hacke evtl auch mal "No cropping" an.