注册 登录
主题 : 请教各位在用OpenGL使用PNG图片的时候有没有遇过黑边的问题?
级别: 新手上路
UID: 1567
精华: 0
发帖: 12
可可豆: 689 CB
威望: 689 点
在线时间: 1937(时)
注册时间: 2008-12-08
最后登录: 2014-10-09
0 楼:  发表于: 2009-02-05 23:33    发自: Web Page

请教各位在用OpenGL使用PNG图片的时候有没有遇过黑边的问题?   

管理提醒: 本帖被 gagaga 从 iPhone/iPod Touch开发一般讨论区 移动到本区(2009-03-09)
如题

PNG透明的地方有黑边,不知道各位有没有遇到这个情况。
级别: 骑士
UID: 929
精华: 0
发帖: 8
可可豆: 3038 CB
威望: 3038 点
在线时间: 366(时)
注册时间: 2008-10-03
最后登录: 2015-11-08
1 楼:  发表于: 2009-02-06 09:26    发自: Web Page
如果沒開aplha channel也有嗎?

或是進photoshop看看通道裡是否有問題?
级别: 精灵王

UID: 759
精华: 0
发帖: 91
可可豆: 22276 CB
威望: 22276 点
在线时间: 2451(时)
注册时间: 2008-09-17
最后登录: 2017-01-13
2 楼:  发表于: 2009-02-06 12:13    发自: Web Page
alpha值的问题吧   
玛丽玛丽吼 风火雷电劈
级别: 管理员

状态: 连续签到 - [3天]
UID: 2
精华: 9
发帖: 7688
可可豆: 73313 CB
威望: 73439 点
在线时间: 5514(时)
注册时间: 2008-03-29
最后登录: 2016-08-05
3 楼:  发表于: 2009-02-06 12:17    发自: Web Page
要用24bit的png阿。另外,边缘的问题,ps里面透明背景的颜色是可以自己选的,如果做浅色图,建议把透明背景色设置成深色,比较容易看出边缘,或者vice versa

还一个办法就是在ps里把图片的背景弄白,先找有没有黑边,有的话擦掉。保存之前把白背景隐藏再保存。
In all thy ways acknowledge Him, and He shall direct thy paths.
级别: 新手上路
UID: 1567
精华: 0
发帖: 12
可可豆: 689 CB
威望: 689 点
在线时间: 1937(时)
注册时间: 2008-12-08
最后登录: 2014-10-09
4 楼:  发表于: 2009-02-06 22:25    发自: Web Page
谢谢各位,我试过24bit的png,还是有黑边,但是8bit的就没有,256色的也没有,请问这种情况是什么原因呢?
级别: 骑士
UID: 593
精华: 0
发帖: 59
可可豆: 3061 CB
威望: 3061 点
在线时间: 997(时)
注册时间: 2008-09-02
最后登录: 2017-09-22
5 楼:  发表于: 2009-04-11 10:21    发自: Web Page
哈哈,今天终于见到和我有同样问题的人拉,解决这个问题我花了3天时间,确实是太奢侈了,你去改改纹理滤波方式,应该就能解决你这个问题。
级别: 新手上路
UID: 4540
精华: 0
发帖: 3
可可豆: 30 CB
威望: 30 点
在线时间: 0(时)
注册时间: 2009-04-11
最后登录: 2016-03-27
6 楼:  发表于: 2009-04-13 17:32    发自: Web Page
您OpenGL功夫要再下下!
级别: 侠客
UID: 16444
精华: 0
发帖: 94
可可豆: 940 CB
威望: 940 点
在线时间: 470(时)
注册时间: 2010-03-30
最后登录: 2016-09-19
7 楼:  发表于: 2010-06-01 18:02    发自: Web Page
如果你用的是UImage方式加载的png就会有这种问题,建议用lpng直接加载到opengl
级别: 新手上路
UID: 176511
精华: 0
发帖: 27
可可豆: 146 CB
威望: 137 点
在线时间: 118(时)
注册时间: 2012-11-13
最后登录: 2016-05-11
8 楼:  发表于: 2013-09-13 15:07    发自: Web Page
mark 学习了。。。
级别: 新手上路
UID: 18239
精华: 0
发帖: 30
可可豆: 39 CB
威望: 39 点
在线时间: 85(时)
注册时间: 2010-04-23
最后登录: 2015-02-10
9 楼:  发表于: 2013-09-15 10:00    发自: Web Page
楼上的都在瞎猜呢,原因是因为OpenGL的线性过滤混合到“一半”的透明像素,png的透明像素不可编辑,但3D图形API没有透明像素这个概念,底层仍然是RGBA格式,透明像素默认是黑色+0alpha,可能会插值出“黑边”
一个解决方案:将出问题的png转换为tga,然后去掉潜在可能的黑色区域(如果不想修掉所有黑色区域,至少要扩展边界),然后再转换为png,如果想简单转换,建议自己用C/C++写一个,用CxImage库,能很好的将tga和png来回转换,能自动将alpha转换为透明像素
描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部