I’m trying to use transparent UV maps and they don’t seem to be
rendering properly in the game engine (2.25). Faces which should be occluded are poking through where they shouldnt. Could some of you check out the attached demo file and let me know if you see the same problem / can suggest a solution / or if its a bug?
http://bec.physics.udel.edu/blender/transparency-test.blend
This is an old bug, there are a couple ways to work around it though.
-
You can set the order that one image will display over another by renaming the images in the image window. I’m not sure exactly how they’re sorted, it isn’t alphabetical, so you’ll just have to experiment until they’re displaying in the right order.
-
Put some images in a different directory. Again, I’m not sure exactly why this works, but I find that if you have a directory structure like the one below:
- alpha_a
|-- image1.tga
|+ alpha_b
. |-- image2.tga
. |+ alpha_c
. . |-- image3.tga
then image1.tga will probably display over image2.tga, and they both display over top of image3.tga. It doesn’t always work though, so you’ll have to experiment with this one too.
Fixing the order in which they are drawnmight solve the problem for a still image but in the game engine there is no preferred drawing order – it depends on where the camera is wrt the objects right? Or am I misunderstanding your solution?
changing the order different objects are drawn doesn’t seem possible.
they seem to be placed randomly in the drawing order when the game begins (could have led wiseman303 to think that changing the image order works, it led me to believe in changing the selection…) [I have also tried changing layers, seemed to work, on my computer, but not this one. Still inconclusive)
that said, it is possible to change the order translucent faces are drawn in an individual object. See images:
and
Note the green branches lower down on the first tree, how they are showing through the higer level branches.
these were created with some thought (consider that faces are single sided…,) and by seperating the tree into multiple objects, and joinining them back together the reverse (maybe not) order they should be drawn in.
I actually forget the order they were combined, but it caused the object to be drawn correctly from all sides.
That said, not all objects have such a solution from all sides.
… oh, and I wanted to work on a script to sort the order of the faces, but I feel I have taken too long. Look at my website http://www.geocities.com/z3r0_d/ to see how I thought it could be done.
I would still like to, if I find (or make) time
The open source people need to get on this bug, because from what little I know of graphics programming (just started learning opengl) it seems like an extremely trivial thing to fix.
Grrr.
They need to get those physics integrated as well, the demo I tried seemed almost complete? Why no game engine yet?
Oh well, just venting:)
I had this problem and I believe it is related to the way open GL renders to the screen. If you make the dimensions of your bitmap divisable by 16 the problem is cured. Good Luck.
your problem could be fixed in a later version of blender (though not completly, there is no fast, yet acceptable solution to determine the proper draw order of intersecting translucent faces) by having it sort by depth the drawing order of objects that have alpha faces.
That said, I don’t think it will come immedately.
openGL renders translucent objects in the order they were given to it (openGL), so if an object is given after a further one they will appear to improperly overlap.
that is exactly what happens, and I know of no fix without changing blender.
(the image size should be irrelevant to drawing order)
Isn’t GL_DEPTH_TEST the way it sorts faces? I was under the impression that it sorts translucent faces as well.
me <---- stupid GL newb