Autor Beitrag
qwertzqwertyqwertzqwerty
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21

Win XP
C# VS 2008
BeitragVerfasst: Mi 01.10.08 09:12 
Ich habe folgendes Problem:
Ich habe eine 2d Textur von XNA abbilden lassen.
Dummerweise entstanden dabei diese blöden blauen Ränder.
Kann ich verhindern, dass diese Ränder angezeigt werden?
Wenn ja, wie?

MfG
Einloggen, um Attachments anzusehen!
qwertzqwertyqwertzqwerty Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21

Win XP
C# VS 2008
BeitragVerfasst: So 05.10.08 21:48 
kann mir niemand helfen?
ich arbeite mit an einigen stellen transparenten texturen, die ich vergrößern lasse
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: Fr 10.10.08 16:14 
Muss gestehen. Ich schau gerade das erste Mal in die C# Sparte und stamme eigentlich aus dem OpenGL Bereich. Also nicht direkt XNA. Aber ich denke der Grund dafür liegt daran, dass du die Textur vergrößerst. Und zwar besteht die Textur ja wahrscheinlich aus RGB Werten und einem Alphakanal. Bei OpenGL ist es so, dass bei Vergrößerungen sowohl RGB als auch Alpha interpoliert werden. Einige Grafikprogramm gehen aber her und färben nicht sichtbare Pixel einfach anders ein. Wenn jetzt alles interpoliert wird, dann kann es sein, dass die Farbe eines Pixels zu der nicht sichtbaren Farbe verläuft wärend der Verlauf in dem Alpha dafür sorgt, dass dieses Pixel leicht sichtbar wird.

Du solltest dort deine Bilder noch mal bearbeiten. Dazu öffnest du diese und fügst eine Ebenenmaske hinzu ("Alphakanal der Ebene übernehmen"). So heist das zu mindest in GIMP. Diese Maske sollte schwarz/weiß sein. Schwarz für Transparenz und Weiß für sichtbar. Wenn du diese deaktivierst (nicht löschen), dann solltest du die gesammten Farben des Bildes sehen. Und dann sollte dieses Blau auch sichtbar sein. Da müsstest du genau genommen dafür sorgen, dass die sichtbaren Farben 1-2 Pixel über das eigentlich sichtbare hinaus gehen.

Es gibt so ein Verschmierwekzeug. Das solltest du auf 1 Pixel stelle und dann ganz am Rand des Sichtbaren die Farben ein wenig in den blauen Bereich schmieren damit das Blaue die Farben der umliegende sichtbaren Pixel annimmt. Wenn du das gemacht hast, dann kannst du das Bild wieder speichern. Dann sollte es sich auch anständig vergrößern lassen.

Falls das jetzt ein wenig zu kompliziert war, dann häng doch bitte eines deiner Texturen mal an. Dann zeige ich dir mal am lebenden Objekt was ich meine. ;)

PS: Ich meine so etwas passiert immer dann, wenn man einen Bereich/Farbe markiert und entfernen drückt damit es transparent werden soll. Dann gehen die Programme her und füllen RGB mit der Hintergrundfarbe und den Alpha mit 0. Da bietet es sich an immer die Ebenenmaske hinzuzufügen und dann nur diese Maske mit schwarz zu füllen. Dann lassen die Programme die RGB Werte auch in ruhe.

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
qwertzqwertyqwertzqwerty Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21

Win XP
C# VS 2008
BeitragVerfasst: Sa 18.10.08 09:58 
Danke :D