2010-08-03 34 views
5

¿Necesito canales Alpha para que la transparencia funcione en OpenGL? ¿Puedo usar glBlendFunc o cualquier otra cosa para hacer que el color Negro o Blanco sea transparente/no visible? si es así, ¿cómo hacerlo?OpenGL - ¿Cómo funciona la transparencia?

+0

Todo lo que haga es muy, muy probable que sea tan complejo o más que los canales alfa. Si es solo para aprender, está bien. Entonces, ¿qué/por qué estás tratando de evitar el uso de canales alfa para la transparencia? –

+0

porque ya tengo imágenes sin canales alfa .. – Tenev

+0

Da algunos más detalles sobre la transparencia en Opengl es demasiado genérica. ¿Que estás tratando de hacer? – ferosekhanj

Respuesta

2

No, no necesita un canal alfa en sus texturas. Llame al discard en su sombreador de fragmentos para todos los fragmentos que coincidan con su regla de transparencia.

2

Sí, necesita canales alfa para usar la transparencia. Puede emular el comportamiento de la incrustación de colores utilizando sombreadores, o procesar la imagen y reemplazar la clave de color con píxeles con alfa = 0.0.

Observe que las GPU siempre asignan texturas RGBA, incluso si desea una textura RGB. El canal alfa aún está presente en el hardware.

+0

"Tenga en cuenta que las GPU siempre asignan texturas RGBA, incluso si desea una textura RGB. El canal alfa todavía está presente en el hardware". -> ¿tiene una referencia para esto por favor? Nunca escuché de esto, incluso si tiene sentido. – Calvin1602

+0

@ Calvin. Ese comentario proviene de ingenieros de NV/AMD, pero creo que vi algunas referencias en las diapositivas. –