komischer Grafikfehler

Previous topic - Next topic

Nobiag

Hi,
bin gerade am verzweifeln... ich wollte nur zum Test einen Button zwei Bildern die ich mit Alphamode ?bereinanderlege und einem Text drauf erstellen und dann als Sprite speichern. Jetzt hat mein Button aber Grafikfehler, zum einen ist eine Pixelreihe teilweise schwarz gesprenkelt und dazu kommt noch, dass an den Ecken die Hintergrundfarbe (255,0,128) dargestellt wird.
Hier mal ein Bild davon, mit dem dazugeh?rigen Code:




Hab gerade noch was ausprobiert... hier noch ein Bild, bei dem das erste Sprite auch komplett auskommentiert ist. Es liegt also nur am zweiten. Das das ganze diesmal so rosa ist, ist ja schon klar, aber die Ecken sollten eben auch hier nicht rosa sein und die Pixelreihe ist auch wieder kaputt.



Oben links in der Ecke habe ich ?brigens den gleichen Button mit den gleichen Bilden und gleichen Alphamodes erstellt, nur w?hrend des Loops, anstatt das Ergebnis als Sprite zu speichern.
Achso und am Bild selber liegt es auch nicht, ich habe es auch mit anderen (aber ?hnlichen... gleiche Gr??e, ?hnliche Farben) probiert, die kaputten Pixel sind zwar an etwas anderen Stellen, aber immer grob in diesem Bereich. Die Farben in diesem Bereich in den Bilddateien habe ich auch schon ver?ndert, z.B. die eine betroffene Pixelreihe gr?n gef?rbt und trotzdem war wieder genau diese Reihe kaputt.

Sagt mir bitte, dass ich zu m?de bin und irgendwas offensichtliches ?bersehe...



Edit:
Habe jetzt mal versucht das Sprite direkt nach Grabsprite mit Savesprite zu speichern, nur so als Test. Das gespeicherte Bitmap hatte keine Fehler und die Ecken hatten genau die Hintergrundfarbe (255,0,128), wenn ich das Bitmap dann nochmal geladen habe, wurde es auch in GLBasic ohne Fehler angezeigt. Scheint also nur ein Fehler in Verbindung von Grabsprite und dem direkten Anzeigen des "gegrabbten" Sprites im Programm zu sein...   :zzz:

Quentin

hmm, kann ich leider nicht nachvollziehen. GRABSPRITE scheint tadelos zu arbeiten. K?nntest du vielleicht mal die Grafiken hier zur Verf?gung stellen, mit denen du arbeitest?

Nobiag

#2
Hab wie gesagt mehrere Bilder ausprobiert. Aber hab sie jetzt alle als Anhang hochgeladen


Edit:
Hab gerade noch ein Bild von nem anderen Projekt gemacht, da gibts nen ?hnlichen Fehler. Ist so ne Art Partikelengine und da erstelle ich auch ein Sprite indem ich mehrere Sprites ?bereinander lege und dann mit grabsprite grabbe. Und selbst wenn ich vorm grabben nochmal Settransparency rgb(255,0,128) wird das Schwarz transparent, denn 255,0,128 kommt da im Grunde ?berhaupt nicht vor. In dem Projekt st?rts zwar nicht, aber ist mir auch mal aufgefallen.


[attachment deleted by admin]

Kitty Hello

Poste mal ein ganzes Beispiel.
Dir ist schon klar, dass Du mit alphamode -0.4 auf ein transparentes Pink zeichnest -> was da bei grabsprite transparent ist, wei? keiner.

Kann auch ein Treiberproblem sein. Am Besten ein fully working example posten.

Nobiag

#4
Quote from: Kitty Hello on 2009-May-13
Poste mal ein ganzes Beispiel.
Dir ist schon klar, dass Du mit alphamode -0.4 auf ein transparentes Pink zeichnest -> was da bei grabsprite transparent ist, wei? keiner.

Kann auch ein Treiberproblem sein. Am Besten ein fully working example posten.

Also das mit dem Pink ist mir schon klar, falls du das zweite Bild meinst, da kommt nat?rlich das Pink durch. Aber an den Ecken sollte das Pink so oder so nicht zu sehen sein, weil da der Alphamode doch egal ist, wenn die Bilder die ich dr?ber lege an den Ecken das transparente Pink haben... dann sollte das Pink was drunterliegt genau so durchkommen, also 255,0,128.
Aber ok, das Pink unten drunter hab ich jetzt mal rausgenommen, dann funktioniert das mit den Ecken schonmal, die Pixelreihe bleibt aber kaputt.
Im Anhang ist ein komplettes Beispiel...

Edit: das mit dem Treiberproblem k?nnte sein... hab n?mlich letztens erst neue Grafikkartentreiber installiert. Muss ich mal andere probieren.

[attachment deleted by admin]

D2O

#5
Hi,

ich Denke dass das ansich kein Bug ist.
Du legst 2 Grafiken ?ber einander und dann kommt noch Alphamode dazu!

Nun in dem Bereich wo die "Grafikfehler" auftauchen wird durch die neue Farbmischung von dem Darunter und dem Dar?ber liegeden
Bild beim Grabsprite das "Rosa" gemischt wo f?r GLB als Transparrent gilt!

Ver?ndere mal die Alphawerte und Du siehst was ich meine.

Edit:

Versuch es mal so ;)

Code (glbasic) Select

FUNCTION makebutton: spritenum%

//DRAWRECT 0,0,108,33,RGB(255,0,128)


ALPHAMODE 0.0
DRAWSPRITE 0,0,0

SETTRANSPARENCY RGB(0x00, 0x00, 0x00)  // ------ Transparentzfarbe ?ndern

ALPHAMODE -0.4
DRAWSPRITE 1,0,0

GRABSPRITE spritenum,0,0,108,33

SETTRANSPARENCY RGB(0xff, 0x00, 0x80)  // und wieder zur?ck zum Standart schalten

ENDFUNCTION
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell

Kitty Hello

Meine G?te, was ist'n hier los!?

Wenn Du vor GRABSPRITE ein ALPHAMODE 0 machst, dann geht's. Ich werde versuchen den Fehler zu beheben.
Danke f?r's Feedback.

Nobiag

Quote from: D?O on 2009-May-14
Hi,

ich Denke dass das ansich kein Bug ist.
Du legst 2 Grafiken ?ber einander und dann kommt noch Alphamode dazu!

Nun in dem Bereich wo die "Grafikfehler" auftauchen wird durch die neue Farbmischung von dem Darunter und dem Dar?ber liegeden
Bild beim Grabsprite das "Rosa" gemischt wo f?r GLB als Transparrent gilt!

Ver?ndere mal die Alphawerte und Du siehst was ich meine.

Das Rosa entsteht da nicht, wenn man das gegrabbte Sprite mit Savesprite als Bitmap speichert, sieht man das gut. Und Grau + Blau sollte ja auch kein 255,0,128 geben ;)

Aber Gernot hat ja jetzt schon best?tigt, dass da irgendwas nicht stimmt und Alphamode 0 vorm Grabsprite scheint schon ne gute Notl?sung zu sein. Danke :)