OpenGL ES png贴图边缘黑边问题

[LO] 2011-11-20 02:01:03
OpenGL ES 我用带羽化的png做贴图为什么羽化不部分会有黑影呢?

...全文
655 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
[LO] 2011-11-20
  • 打赏
  • 举报
回复 1
问题已解决
贴出网友的解决方法
希望能帮到遇到相同问题的的朋友。

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
[LO] 2011-11-20
  • 打赏
  • 举报
回复
纠结了我几天了·百度都度遍了 苦啊·~
念茜 2011-11-20
  • 打赏
  • 举报
回复
这个似乎在android版块不容易得到解答……

80,357

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧