OpenGL中的关键色解决问题

在OPENGL里没有像DX一样的SetColorKey来设置关键色。但是在OPENGL里很多地方是需要关键色处理的。比如说在游戏中渲染UI。所以我在这里提出2个方法来解决这个问题。
1。把关键色部分的alpha设置成0,其他地方设置成1。用ALPHA BLEND。
2。更好的方法。还是把关键色部分的ALPHA设置成0,或者是个小数。使用alpha test。比如你把ALPHA设置成了0.1。你就这样写:glAlphaFunc(GL_GREATER,0.2);glEnable(GL_ALPHA_TEST);



不要告诉我说你不会把RGB数据转换为RGBA数据。
伪代码如下:
for (int i=0,j=0;i<x*y*3;i+=3,j+=4)
{
img[j]=src;
img[j+1]=src[i+1];
img[j+2]=src[i+2];
if src==ColorKey then img[j+3]=0
else img[j+3]=255;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值