您的位置:首页 > 运维架构

OpenGL中的关键色解决问题

2005-03-01 05:31 232 查看
在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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  blend 游戏 ui