Alpha texture draw order issues

Hello, I am having a severe problem which is slowing down the creation of my main menu scene:

(Image removed)

Note how the vertical energy beam in the middle is being incorrectly drawn(violet dust and brown dust on top of it); the sun itself in the middle, if put a little down of where it is will too present alpha draw problems(the dust behind it is draw on top of it). I have been trying and trying to find a way to fix this by myself, and all I found is which objects with alpha textures, near to other objects with alpha texture cause the problem(there may be other causes too). The objects positioning is correct.

I also don’t understand as the scene camera has a decent .far and .near planes, and the objects are not ‘glued’ between them, they have quite a space separating them.

Thanks for any help, if needed I can provide the blend.

Are you using ALPHA SORT?

If for alpha sort one just has to set Materials>Game settings>Alpha Blend > Alpha sort for the currently selected object, then yes, I had set alpha sort for everything just to test.

Or that add-on where one set each face with copy draw mode at object data window is still needed? I hadn’t enabled it.

Here is the file:

http://felipearts.com.br/nebula.zip

PS:

Couldn’t load the blend here because it keeps giving me error messages, so I did that at my site.

Interestingly enough, alpha clip works!

But it must not be alpha clip, as far as I know alpha clip just recognizes which something is transparent or not, nothing between. That would ruin the quality of the scene. Is it a bug or something?

I am also having problems with alpha texture boundaries at regular blender rendering(no BGE), as seen here:

(File removed)

Video card is ATI radeon hd 6770m 512mb, running on a mid-range 2011 iMac with OSX Lion.

I made a new clean blend to test if my old file was corrupted; I did very few things(just made anew the two disc rings, the beam and the sun) but it was enough for me to clearly see which the Alpha Sort and Alpha Blend options are bugged. Will submit a bug report now.

Even an plane with no texture, opaque, set to one of these two options give this result.

First off, make sure alpha sorting is enabled for each object(or does BGE do that automatically? I don’t remember. Maybe there isn’t a setting for it and it’s on by default.). Sometimes, though, alpha sorting on a per-object basis isn’t enough. Individual faces from the same object can still render in the wrong order- transparent faces that are actually behind others will appear in front of them). In that case, you need to enable per-face alpha sorting. That option used to be located in the texture face panel where you would set faces to clip alpha mode, but it may have been moved in recent versions, I haven’t been keeping up.

But the most important thing to remember is this: use ALL triangles for alpha objects. Triangulate all your transparent quads. Last I checked, the BGE sorts alpha tris and quads separately, which leads to incorrect ordering if you use both.

Thanks for replying, but I already sent the bug report:

1 - Alpha sort for each object does not helped
2 - No improvements on that from the copy draw menu add-on. Also even single faces show the problem
3 - All objects are quads

Here are the results for this issue:

Date: 2012-01-11 10:02
Sender: Brecht Van Lommel
It’s a limitation of the alpha sorting in the game engine. It will happen at two levels, if Alpha Sort is enabled, faces will be sorted inside a mesh, and it also always sorts objects. In this case, it’s not possible to sort the objects in such a way that it can do correct alpha drawing because they mutually overlap each other. The only solution seems to either split the objects into smaller pieces, or to join them into a single mesh.

PS: Joining didn’t worked neither splitting objects into smaller pieces

After quite some time chatting with the bug tracker guys, with no reliable workaround, I think the only way to see this properly working is to fund this patch to be done; hope I can find someone trusty to do it. Wish me luck.