Alpha. Nein Beta. Oder doch nicht? Tut jedenfalls eigentlich schon was es soll, ist aber noch nicht fertig
Halo Remover ist ein kleines Tool um das Haloproblem bei Texturen zu beheben. Es erweitert den Rand um den sichtbaren Bereich.
Wenn ihr schon mal mit Texturen in einem Spiel gearbeitet habt werdet ihr das Halo Problem vielleicht kennen. Eine Grastextur verliert plötzlich je weiter sie weg ist immer mehr ihre Farbe. Oder ihr dreht euer 3D Modell, und am UV Saum lugt plötzlich die Farbe hervor mit der ihr auf der
Textur zwischen die einzelnen UV Patches den Leerraum aufgefüllt habt. Oder ihr arbeitet in 2D mit gerenderten Sprites. Und am Rand bekommt ihr einen schönen Haloeffekt in der Farbe die ihr in eurem Renderprogramm als Hintergrundfarbe genommen habt. Das alles hat immer die gleiche Ursache: Die Hintergrundfarbe im verborgenen Bereich entspricht eben nicht der Farbe im sichtbaren Bereich. Und wenn diese Farbe dann in den sichtbaren Bereich reinblutet haben wir unseren Halo.
Was bei einer selbst erstellten Grashalmtextur noch leicht zu beheben ist, nämlich einfach beim abrendern die Hintergrundfarbe auch auf das Grün zu stellen das der Grashalm hat, wird bei mehrfarbigen Texturen und Bildern schon nicht mehr so einfach. Es gibt eben beim
Rendern in eurem 3D Progamm immer nur eine Hintergrundfarbe gegen die ihr dann transparent rausrendern könnt.
Halo remover ist ein Tool das genau dieses Problem beheben soll. Es erweitert den Rand mit genau der Farbe des jeweiligen Pixels. Auf Wunsch bis das Bild komplett aufgefüllt ist. Hatte das Bild vorher einen Alphakanal bleibt auch nach dem Abspeichern der vorherige Alphakanal erhalten. Auf den ersten Blick seht ihr dann nach dem abspeichern also kaum einen Unterschied zum Original. Sichtbar wird der Unterschied erst wenn ihr diese
Textur dann zum Beispiel in einer Game Engine wie Unity verwendet.
Noch ist es Alpha. Die Grundfunktionen von Halo Remover gehen aber schon. Das Programm tut im Grunde was es soll. Was fehlt sind all die Gimmicks rund um die UI. Tooltips, Statusbar, Helpfile, und das ganze eindeutschen. Sowie hier und da noch ein Bugfix, ein paar kleine Änderungen und so Sachen wie die Einstellungen und den letzten beutzten Pfad speichern. Manual natürlich nicht zu vergessen. Wie immer halt. zwei Tage um das eigentliche Feature zu erstellen, zwei Monate um die Bedienung drumrumzubauen
Download, 800 Kb:
http://reinerstileset.4players.de/installhaloremoveralphabuild60.exe
Mini Manual:
Number of Borders beschreibt die Anzahl der Ränder die um die sichtbare Grafik gezogen werden soll.
Infinite bedeutet dass das Bild komplett aufgefüllt wird.
Wählt ihr limited aus erscheint eine Editbox in der ihr die Anzahl der Ränder eingeben könnt. Ein Sprite für ein 2D Spiel braucht ja nicht komplett aufgefüllt zu werden.
Blend Mode ist eine Auswahl ob beim Erweitern die Pixel mit den Nachbarpixeln gesoftet werden sollen, sie also mit einander
blenden sollen oder nicht. Ohne
blenden ,also Straight ist natürlich schneller.
Der Extend Faktor gibt an um wieviel Pixel der Rand pro Durchgang verbreitert werden soll. Er startet immer mit 1. Gebt ihr hier Null an wird auch der letzte gezogene Rand nur um einen Pixel erweitert. Das ist allerdings sehr langsam. Gebt ihr hier 1 an wird der erste Rand einen Pixel breit, der zweite Rand zwei Pixel, der dritte Rand vier Pixel ... . Da nimmt dann natürlich nach hinten raus die Qualität stark ab.
Mode. Es gibt zwei Modi. Einmal den Alpha channel Mode. Dabei wird
automatisch der transparente Teil als der Teil präpariert der aufgefüllt werden soll. Und den Opaque Mode. Hier wird
automatisch die Farbe des ersten Pixels oben links als die Farbe definiert die aufgefüllt werden soll. Die Modi werden
automatisch erkannt. Ladet ihr eine Gafik mit Alphakanal wird in den Alpha channel Mode geschalten. Wird eine Grafik ohne Alphakanal geladen wird in den Opaque Mode geschalten.