You discovered a bug in the engine, and you are sure that it is not a problem of your code? Just post it in here. Please read the bug posting guidelines first.
No, it is not. I checked that out earlier in MSPaint.
Besides, these textures rendered fine until Irrlicht 1.4.2. The problem appeared in 1.5, seemed to be fixed in 1.5.1, but still appears in 1.6
P.S. Found out that IVideoDriver::findTexture() doesn't work anymore with incomplete paths (returns false). I think that this should be corrected too. But this still didn't solve my problem (I thought that multiple calls to makeColorKeyTexture may have done this, but - not).
Looks like a problem with makeColorKeyTexture and mipmaps. The problem is that OpenGL and Direct3D blend nearby pixels together, but makeColorKeyTexture doesn't clear the colour value. This means that where you have "fully transparent blue" and "fully solid green" pixels next to each other, they blend into "half transparent blue-green" at the next mipmap up.
Either set the material param lower (not 0 though), use a 32-bit image with transparent green background (ie PNG), disable mipmaps and have nasty artifacts and bad performance, or hack Irrlicht to allow a user-specified transparent colour.
bitplane wrote:Either set the material param lower (not 0 though)
This solved the problem. But why the same code, without setting material param, did work in Irrlicht < 1.5. Some makeColorKeyTexture behavior change? Better fix it back...
The re-interpretation of the 0 in MaterialTypeParam has been removed. Now, 0 means that no early cut-off is done. Before, this value had been re-interpreted as being 0.5, which means that much of the transparency border is automatically cut off. Just try this out by setting the value to 0.01 in an earlier version of Irrlicht, or by setting it to 0.5 in the recent versions. Should look the same then.