Je veux écrire dans le tampon de profondeur OpenGL seulement si le pixel courant a un alpha> 0.5 comment faire cela?Comment écrire/empêcher l'écriture dans le tampon de profondeur OpenGL dans GLSL
Si le pixel est alpha < 0.5, je veux rendre la couleur mais ne pas écrire sa profondeur dans le tampon de profondeur. La commande discard
n'est pas ce que je cherche, car elle supprime à la fois les informations de couleur et de profondeur; Je veux seulement jeter les informations de profondeur. La variable gl_FragDepth
peut être définie, mais à quelle valeur? Et pour le cas alpha < 0,5, comment laisser gl_FragDepth
inchangé?
Dois-je utiliser des FBO pour cela, ou devrait-il aussi fonctionner sans? Le projet je travaille, est un projet Android 2.0 GLES
Je ne pense pas que vous pouvez le faire en un seul passage, du moins pas directement et pas efficacement. Vous pouvez bien sûr définir gl_FragDepth sur une valeur qui provoquera l'échec du test de profondeur (par exemple zfar), mais cela supprimera également la couleur du fragment. Avec deux passages utilisant un test alpha différent, cela devrait fonctionner ... mais sur ES, vous ne pouvez probablement pas vous permettre un autre passage comme celui-ci. – Damon