Prime Members - Reputation: 872
Posted 12 December 2012 - 05:15 PM
The reason is that you can't just draw transparent/blended pixels in random order (depending a bit on your blending and transparency testing methods enabled). In picture2, the foreground image got rendered first. Even though its transparent, also the non-filled pixels wrote a depth value to the depth buffer. After that, you rendered the second quad in the background. But before just plotting those pixels on the canvas, the graphics engine is testing if there is nothing in the foreground occluding it, by comparing depth. Monkey farts, it seems that the quad in front is blocking your way.
Sorting from back- to forward is one way to prevent this, though it still doesn't always work for quads intersecting each other. Second, check your blending / transparency testing options. Transparent pixels shouldn't write a depth value either. If you are using a shader, the fragmentshader for example could simply kill the transparent pixels to prevent this.
Crossbones+ - Reputation: 7123
Posted 12 December 2012 - 06:54 PM
It is amazing how often people try to be unique, and yet they are always trying to make others be like them. - L. Spiro 2011
I spent most of my life learning the courage it takes to go out and get what I want. Now that I have it, I am not sure exactly what it is that I want. - L. Spiro 2013
I went to my local Subway once to find some guy yelling at the staff. When someone finally came to take my order and asked, “May I help you?”, I replied, “Yeah, I’ll have one asshole to go.”
L. Spiro Engine: http://lspiroengine.com
L. Spiro Engine Forums: http://lspiroengine.com/forums