多边形透明度

时间:2015-05-22 09:27:20

标签: alpha-transparency

我需要在2个交叉多边形上绑定纹理,并使它们(多边形)不可见(alpha = 0)。但是纹理对多边形是透明的。 是否可以在没有纹理的情况下制作透明的多边形?

通过这种方式我绑定文本

Gl.glEnable(Gl.GL_BLEND);
            Gl.glEnable(Gl.GL_ALPHA_TEST);
            Gl.glBlendFunc(Gl.GL_SRC_ALPHA, Gl.GL_ONE_MINUS_SRC_ALPHA);
    Gl.glColor4d(255,255,255,0.1);
                Gl.glBegin(Gl.GL_QUADS);
                Gl.glTexCoord2f(1, 0); Gl.glVertex3d(2, 2, 3);
                Gl.glTexCoord2f(0, 0); Gl.glVertex3d(4, 2, 3);
                Gl.glTexCoord2f(0, 1); Gl.glVertex3d(4, 4, 3);
                Gl.glTexCoord2f(1, 1); Gl.glVertex3d(2, 4, 3);
                Gl.glEnd();

Image

我需要在img的左侧部分使用smth。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。 加载png !!图像

GL.glBindTexture(GL.GL_TEXTURE_2D, this.texture[i]);
Gl.glTexEnvi(Gl.GL_TEXTURE_ENV, Gl.GL_TEXTURE_ENV_MODE, Gl.GL_REPLACE);
Gl.glAlphaFunc(Gl.GL_LESS, 0.2f);
GL.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER, GL.GL_LINEAR);
GL.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER, GL.GL_LINEAR);                    
GL.glTexImage2D(GL.GL_TEXTURE_2D, 0, (int)Gl.GL_RGBA, image[i].Width, image[i].Height, 0, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE, bitmapdata.Scan0);

And drow object:
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT);                      
GL.glEnable(GL.GL_BLEND);                                   // Enable Blending
GL.glDisable(GL.GL_DEPTH_TEST); 

GL.glBlendFunc(Gl.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA);           
GL.glBindTexture(GL.GL_TEXTURE_2D, texture[0]);

Gl.glBegin(Gl.GL_QUADS);               
Gl.glTexCoord2f(1, 0); Gl.glVertex3d(2, 2, 3);
Gl.glTexCoord2f(0, 0); Gl.glVertex3d(4, 2, 3);
Gl.glTexCoord2f(0, 1); Gl.glVertex3d(4, 6, 3);
Gl.glTexCoord2f(1, 1); Gl.glVertex3d(2, 6, 3);            
Gl.glEnd();

你将获得没有任何背景的图像。