社区
Android
帖子详情
OpenGL ES png贴图边缘黑边问题
[LO]
2011-11-20 02:01:03
OpenGL ES 我用带羽化的png做贴图为什么羽化不部分会有黑影呢?
...全文
655
3
打赏
收藏
OpenGL ES png贴图边缘黑边问题
OpenGL ES 我用带羽化的png做贴图为什么羽化不部分会有黑影呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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版块不容易得到解答……
glslViewer:用于2D3D着色器的基于控制台的GLSL沙箱
glslViewer GlslViewer是一个基于控制台的灵活
OpenGL
沙盒,无需用户界面即可显示2D / 3D GLSL着色器。 您绝对可以使用Python模块(包括)或任何其他与glslViewer来回通信的工具(使用标准POSIX控制台输入/输出或OSC)来制作自己的UI或包装。 提供几何图形(LST,PLY,OBJ或GLTF)时,GlslViewer支持2D着色器和/或3D着色器。 GlslViewer支持以下内容: GLSL 120上的片段和顶点着色器 解决#include依赖项 通过控制台IN命令和OSC添加/删除#define键 根据平台,缓冲区,渲染通道,几何属性和材料属性自动生成的一组定义。 通过控制台IN或OSC传递自定义制服(float,int,vec2,vec3和vec4) 导入纹理(
png
,bmp,jpg,tga,hdr和gif) 导入立方体
贴图
和球谐函数(
png
,jpg,tga,hdr) 导入LST,PLY,OBJ或GLTF文件(及其依赖项) 具有PBR照明模型的默认vert / frag着色器 更改时热重载文件 一台默认指示灯和一台默
opengl
关于
png
带
黑边
的原因
网上有很多关于
png
带
黑边
的解决方法就是混合模式改成glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);可是没有人说为啥会出现这个
问题
,然后我就被坑死了。 公司里有专门做图片的部门,然后他们用的软件是不一样的,一些人做出来的
png
用glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);是带
黑边
的,问他们呢他们自己也...
【我的
OpenGL
学习进阶之旅】解决
OpenGL
绘制带透明通道的
png
纹理时出现
黑边
问题
,并彻底了解其原理
一、
问题
描述 今天在使用
OpenGL
ES
实现 一个贴纸特效的时候,给UI童鞋验收的时候,UI童鞋说绘制出来的贴纸有
黑边
,非常不美观! 虽然我是在没看出来哪里有
黑边
!!! 直到我将图片放大,才发现真的有
黑边
,佩服UI童鞋的专业素养,一眼就可以看出来有
黑边
!! 好吧,既然有
黑边
,有
问题
,那就得解决!!! 二、解决
问题
2.1 解决效果 通过了一番探索,最终解决了此
问题
,如下所示,没有
黑边
! 2.2 如何解决 最终经过一番探索之后,只修改了混合模式的参数: 混合模式从glBlendFunc(GL_SRC_
OpenGL
png
图片 纹理
贴图
,去除
png
图片
黑边
http://blog.csdn.net/cjkwin/article/details/6011882 用lib
png
把
png
图片读出来就可以用读出的数据生成文理了. 将
png
图片作为纹理
贴图
,在图片周围会产生
黑边
,在网上查了一下,都没有明确指出解决方法!废话不说了,看代码。1.初始化[java:showcolumns]view plaincopy··...
Opengl
ES
之水印
贴图
Opengl
ES
之EGL环境搭建
Opengl
ES
之着色器
Opengl
ES
之三角形绘制
Opengl
ES
之四边形绘制
Opengl
ES
之纹理
贴图
Opengl
ES
之VBO和VAO
Opengl
ES
之EBO
Opengl
ES
之FBO
Opengl
ES
之PBO
Opengl
ES
之YUV数据渲染YUV转RGB的一些理论知识
Opengl
ES
之RGB转NV21
Opengl
ES
之踩坑记
Opengl
ES
之矩阵变换(上)
Opengl
ES
之矩阵变换(下)
Opengl
ES
之水印
贴图
。
Android
80,357
社区成员
91,290
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章