OpenGL ES 我用带羽化的png做贴图为什么羽化不部分会有黑影呢?
解决方案 »
- 不理解,模拟表单提交,使用http还是socket来做比较好呢?
- 关于LiswView CheckBox 全选问题
- 打开浏览器之后,在退出浏览器的时候弹出AlertDialog,怎么显示?
- 如何扩大apk的内存使用量
- 有没安卓高手能帮我
- 在activity里启动service之后怎么样才可以得到这个service的实例
- 求教!游戏开发包是什么啊,还有什么游戏开发框架啊
- 最近学习Android的时候遇到些奇怪的问题,版本3.N和4.N使用不了HttpClient功能
- Android 4.4源码编译之后system.img和factory image size为什么相差很大
- 字符串转16进制串问题,在线等,急急急!
- 改行不行,改做教程
- 最近装sdk时遇到的一个问题ADB not working!
贴出网友的解决方法
希望能帮到遇到相同问题的的朋友。PNG的透明異常是由於SRC的R,G,B分別已經先乘上SRC的Alpha(0~1)
所以當我們使用:glBlendFunc(GL11.GL_SRC_ALPHA,GL11.GL_ONE_MINUS_SRC_ALPHA);
並且用:GLUtils.texImage2D(GL11.GL_TEXTURE_2D, 0, bmp, 0);
載入圖片Texture的時候,OpenGL的結果會出現SRC_COLOR * SRC_ALPHA * SRC_ALPHA + (1-SRC_ALPHA)*DST_COLOR
而我們要的正確結果是SRC_COLOR * SRC_ALPHA + (1-SRC_ALPHA)*DST_COLOR
因此用不適當的方法載入PNG圖片的RGB數值(有ALPHA的部分)會比正常值來的低!※解決方法是用:glBlendFunc(GL11.GL_ONE,GL11.GL_ONE_MINUS_SRC_ALPHA);
但這方法會造成glColor4f無法使用,必須調回GL_SRC_ALPHA。
若用gl.glTexImage2D來載入圖片,就可以維持GL_SRC_ALPHA而不產生黑邊,但卻是一件苦差事:詳情點這http://groups.google.com/group/android-developers/browse_thread/thread/baa6c33e63f82fca。
總之希望能幫助有遇到這個困難的人HAHA