2010 – Halo Remover

1.11.2011 – Version 1.4, Build 96

There was an update problem when loading the image. Functionality wasn`t affected, but it looked ugly. Fixed in 1.4

Halo Remover 1.04, 1.08 Mb — Download

27.10.2011 – Version 1.3, Build 95

Problem solved. There was an incompatibility with one of the extensions. It was outdated. It seems to work with the newest version of the extension though. So all i needed to do was to replace the trouble extension, and save version 1.2 as version 1.3. Version 1.1 will stay available now though. You never know …

26.10.2011 – Reupload Version 1.1, Build 93

A year is gone, and nobody told me that the tool has quit working for the transparent images. Even i haven`t noticed it until now, i have used it in solid mode only. Funny one. The fix to version 1.02 has destroyed some functionality it seems. What`s even nastier is that the extensions that i have used for this tool has also changed meanwhile. And now i cannot get the tool to work in MMF. Means i cannot fix haloremover at the moment. I first have to find out what goes wrong in general here now. And then i would need to dive into this code again too.

Anyways, for now i have reuploaded the old version 1.1, which should work besides the batch quirk i had fixed for version 1.2. Please restart the tool after you have used the batchmode.

Halo Remover 1.01, 1.08 Mb — Download

23.11.2010 – Halo Remover Version 1.02, Build 94

This little update brings a bugfix for the Batch mode. I forgot to reset it when done so that you can redo the batch with other settings. Now you can do this. Start will always start the batch process again.

One quirk is left. When working with batch at 24 bit images, the first image gets double reworked. I`m at digging, but am not sure if i can catch this baddie. You can always redo the first image by hand though.

12.7.2010 – Halo Remover Version 1.01, Build 93

First public version of Halo Remover


You will surely know the problem in case you have worked with textures in a game. A grass texture looses its colour the farer away it is. Or you rotate your 3D model and you can see the colour that is in the gaps between the UV patches of your texture. Or you work in 2D with prerendered sprites. And then there is this nice little halo around this sprite, in the colour you had used as background colour in your render software. This all is caused by the same problem. The background colour in the hidden areas is not equal the colours in the visible areas. And when this colour bleeds into the visible part it will result in our halo.

Somehow easy to fix with a grass texture, simply use another background colour that is equal the grass colour. Or you`re so happy that you can use premultiplied Alpha, which also removes the halo effect. But not every game or renderengine comes with this feature.

Halo remover is a tool to fix that problem for the traditional alpha channel. It extends the border with the colour at this point. When needed the whole area gets filled. A formerly alpha channel gets kept. So at a first look the saved result doesn`t really look different. But it becomes visibly different when you use this graphics in a game engine like Unity then.

For all of you who still wonder what the halo effect is, here a short explanation with example

Create yourself a grass texture. Render it in front of a white background, using Antialias. Of course with Alpha channel. We want to use this texture to create a little meadow with it. At the right you can see the original texture i have used.

.

Now let`s create our meadow and render it. I`ve rendered it in front of a black ground to make the halo effect more obvious.

Looks like snow, doesn`t it? The hidden white colour bleeds into the visible area. And then there is nothing much left from our green grass colour. That`s the halo effect.

Now let`s use our Halo Remover at the texture. From outside it still looks the same:

The with it rendered result looks completely different though:

What happened? Remember, the halo effect comes from the pixels in the hidden areas, which bleeds into the visible part. What i did was to replace this hidden pixels by colours that has the same colour than the corresponding borderpixels in the visible area. And this leads to the fact that the overall colour look stays the same. Halo effect is gone 🙂

Let`s remove the alpha channel from both textures, and they would look like in this two shots. Left the unprepared original texture. Right the result after Halo Remover. The pixels from the visible part are extended into the invisible areas.