2010-06-26 34 views
5

Necesito tu ayuda. Sé que hay alfa en OpenGL, y me ayuda a dibujar un polígono en modo transparente, pero no sé cómo hacerlo, lo que debería permitir que opengGL dibuje ese polígono.cómo dibujar un polígono transparente en openGL

y gracias por cualquier ayuda.

+6

Debe hacer clic en la marca para aceptar la respuesta de matias.valdenegro :) –

Respuesta

14

Es muy sencillo:

glEnable(GL_BLEND); //Enable blending. 
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); //Set blending function. 

Esa es la básica, esa función es la mezcla básica y debe estar bien para usted, pero hay otros.

Luego, debe estar seguro de que su ventana/framebuffer contiene un canal alfa, y que los polígonos que dibuje también contienen información alfa.

+0

gracias, hombre, esto fue bueno. – Hitman

6

Es exactamente como dice Matias, pero también debe recordar que para que funcione la "transparencia" como se supone, todas las primitivas no transparentes de la escena deben dibujarse primero, y las transparentes deben dibujarse en el orden correcto, desde la parte posterior de Z-buffer hacia el frente.

La razón de esto es que OpenGL realmente no admite transparencias, lo emula mediante alfa-blending, por lo que si se dibuja un nuevo objeto detrás de una primitiva "transparente" después de que ya se haya procesado, el nuevo objeto no será visible a través de él.

Cuestiones relacionadas