I'm working on a game in a 3D world with elements 2D only (Like Don't starve game) for Android and IOS.
Currently, I've managed "Sprite" without alpha blending, I've just put a condition in the pixel shader to test if pixel alpha channel is null:
if ( texture.a < 0.5 ) discard;
Everything working here. (On old devices like an HTC desire mobile, this condition "destroy" framerate but it's another problem :/)
But recently, I've tried to had another Sprite with AlphaBlending activated (The character in the video):
glCheck( glEnable(GL_BLEND) ); glCheck( glBlendFunc( GL_ONE, GL_ONE_MINUS_SRC_ALPHA ) ); glCheck( glDisable(GL_DEPTH_TEST) );
My sprite transparency is ok but it is now in front of everything in the scene. (Probably due to glDisable(GL_DEPTH_TEST)).
How can I handle depth with alpha blending activated?
Here is a video to show the problem:
Thanks for your time!