J'essaie de dessiner une sphère avec alpha, mais j'ai un problème avec mon Z-buffer. Certains pixels sont transparents mais écrivent dans le Zbuffer de sorte qu'un pixel opaque juste derrière est caché.OpenGl alpha test - Comment remplacer AlphaFunc obsolète?
Voici mes paramètres:
gl Enable: gl DEPTH_TEST.
gl DepthFunc: gl LEQUAL.
gl Disable: gl CULL_FACE.
gl Enable: gl BLEND.
gl BlendFunc: gl SRC_ALPHA with: gl ONE_MINUS_SRC_ALPHA.
que je connais la fonction glAlphaFunc(GREATER, aFloat)
et enable(ALPHA_TEST)
peut le faire, mais je lis que c'est une fonction dépréciée depuis la version 3.1 d'OpenGL. Comment puis-je faire un rendu correct sans utiliser ALPHAFunc? Est-ce que quelqu'un connaît un truc, ou un moyen de le faire via les shaders?
Dans GL moderne vous êtes censé faire dans shader fragment, par exemple 'if (result.a> threshold) rejeter; – keltar
Votre question est très similaire à celle-ci: http://stackoverflow.com/questions/23280692/opengl-es2-alpha-test-problems/23283256. Je ne vais pas le suggérer comme un duplicata pour le moment car c'est un cas d'utilisation légèrement différent. Mais ma réponse dans cette question devrait toujours s'appliquer à votre cas. –