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;
}
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;
}
相关文章推荐
- vs2010中配置OpenGL以及针对64位系统所遇问题的解决办法
- 基于MFC的opengl编程(解决拖动窗口抖动问题)
- Windows平台下C++插件系统实现的几个关键技术问题及其解决思路
- OpenGL(二十一) glPolygonOffset设置深度偏移解决z-fighting闪烁问题
- 关于VS2010中配置cocos2d-x ,出现OpenGL version too old 问题的解决办法
- OpenGL+MFC导致闪烁、不刷新等问题的解决方法
- 解决win10 关键错误开始菜单和cortana无法工作 的问题
- QT关键问题解决之paintevent理解
- 解决OpenGL x64平台 LINK : fatal error LNK1104: 无法打开文件“glut32.lib”及外部无法解析的符号的问题
- 解决cocos2d-x 安卓锁屏再解锁,OPenGL报错;后台转前台异常问题解决办法
- CIO慎实施:SaaS无法解决“关键”问题?
- 河南省周口市金保系统向各区县推进工作关键技术问题解决
- SaaS实施无法解决的“关键”问题
- 解决安装OpenGL时程序运行提示glut32.dll丢失的问题
- OPENGL标点问题的解决
- 在VS2010中文版中配置OpenGL及问题解决
- 华为坦言欧洲市场面临困难 解决专利问题是关键
- OpenGL常见问题以及解决办法
- Opengl 绘图出现白板、像素不清晰的问题解决办法
- CIO慎实施:SaaS无法解决“关键”问题?