opengl png 背景为黑色的问题。

将png图片作为纹理贴图,在图片周围会产生黑边,在网上查了一下,都没有明确指出解决方法!废话不说了,看代码。

1.初始化

 

  1. protected void init(GL10 gl) {  
  2.     // Setup background color  
  3.     gl.glClearColor(1111);  
  4.     gl.glEnable(GL10.GL_BLEND);  
  5.     gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);  
  6.   
  7.     glEnable(GL_DEPTH_TEST);  
  8.     glEnable(GL10.GL_ALPHA_TEST);  // Enable Alpha Testing (To Make BlackTansparent)  
  9.   
  10.     glAlphaFunc(GL10.GL_GREATER,0.1f);  // Set Alpha Testing (To Make Black Transparent)  
  11.   
  12.     // Setup project matrix  
  13.     gl.glMatrixMode(GL10.GL_PROJECTION);  
  14.     gl.glLoadIdentity();  
  15.     GLU.gluOrtho2D(gl, 0.0f,1.3f,0.0f,1.0f);  
  16.     gl.glEnable(GL10.GL_TEXTURE_2D);  
  17.     gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, texBuff);  
  18.     gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);  
  19.   
  20.     tex = loadTexture(gl, bmp);  
  21.   
  22.     // Smooth shading  
  23.   
  24.     gl.glShadeModel(GL10.GL_SMOOTH);  
  25. }  

 

2.加载纹理贴图

 

 

[c-sharp] view plain copy
  1. protected static int loadTexture(GL10 gl, Bitmap bmp, boolean reverseRGB) {  
  2.         int[] textures = new int[1];  
  3.         glGenTextures(1, textures, 0);  
  4.         int mTextureID = textures[0];  
  5.         glBindTexture(GL_TEXTURE_2D, mTextureID);  
  6.         glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,GL_NEAREST);  
  7.   
  8.         glTexParameterf(GL_TEXTURE_2D,  
  9.                 GL_TEXTURE_MAG_FILTER,GL_LINEAR);  
  10.         glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S,  
  11.                 GL_CLAMP_TO_EDGE);  
  12.   
  13.         glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T,  
  14.                 GL_CLAMP_TO_EDGE);  
  15.         glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE,  
  16.                 GL_REPLACE);  
  17.         GLUtils.texImage2D(GL_TEXTURE_2D, 0, bmp, 0);  
  18.   
  19.         bmp.recycle();  
  20.           
  21.         return mTextureID;  
  22. }  

 

3.效果图

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值