关于OpenGL的Alpha融合的简单问题——

jxk122481 2007-01-06 08:34:05
浮点型表示的像素数据为(0.2f,0.8f,0.3f,0.1f)
若要将之转换为unsigned char型表示,以满足GL_RGBA8条件,是否直接为
(0.2f*255,0.8f*255,0.3f*255,0.1f*255)?或者为其它?
Thanks.
...全文
240 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
一分之千 2007-01-07
  • 打赏
  • 举报
回复
glColor4ub
unsigned byte 255级的
syy64 2007-01-07
  • 打赏
  • 举报
回复
改成255级的,需要设置环境变量。
jxk122481 2007-01-07
  • 打赏
  • 举报
回复
嗯,可能是我没有说清楚~~~
float型的所有数据都是计算生成的,有alpha通道,要将之作为纹理显示,如下所示:
glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA8,width,height,0,GL_RGBA,GL_UNSIGNED_BYTE,m_Image);
因为m_Image中的一个像素是4个unsigned char型,所以要先将float型转换——

我在某书上看到的是,像(0.2f,0.8f,0.3f,0.5f)的转换,用的是除法,即
(0.2f/0.5f*255,0.8f/0.5f*255,0.3f/0.5f*255,0.5f*255),然后超过255的直接赋值255.
后来我自己实验发现直接乘上255的效果要好些,所以有些疑问~~~~

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧