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;
}

阅读更多
文章标签: blend 游戏 ui
个人分类: 图形技术
上一篇[翻译]3DS文件结构
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭