OpenGL中渐隐渐现效果的实现

ssmtree 2010-11-08 03:44:08
OpenGL中渐隐渐现效果通常通过开启混合,改变a值实现,这样是没有问题的。
但是,如果在绘制多边形的时候,如果给没有顶点指定了颜色的前提下,上面的方法就不管用了。
代码的形式如下:
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

glColor4f(1.0f, 1.0f, 1.0f, a); // a值变量

glBegin(GL_QUADS);

glColor4f(1.0f, 0.0f, 0.0f, 1.0f); glVertex3f(-50.0f, -50.0f, 0.0f);
glColor4f(0.0f, 1.0f, 0.0f, 1.0f); glVertex3f(50.0f, -50.0f, 0.0f);
glColor4f(0.0f, 0.0f, 1.0f, 1.0f); glVertex3f(50.0f, 50.0f, 0.0f);
glColor4f(1.0f, 0.0f, 1.0f, 1.0f); glVertex3f(-50.0f, 50.0f, 0.0f);

glEnd();

请教:这种情况下如何实现渐隐渐现,或者是根本不可能实现的?
...全文
404 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
linsat 2010-12-05
  • 打赏
  • 举报
回复
glColor4f(1.0f, 0.0f, 0.0f, 1.0f); glVertex3f(-50.0f, -50.0f, 0.0f);
glColor4f(0.0f, 1.0f, 0.0f, 1.0f); glVertex3f(50.0f, -50.0f, 0.0f);
glColor4f(0.0f, 0.0f, 1.0f, 1.0f); glVertex3f(50.0f, 50.0f, 0.0f);
glColor4f(1.0f, 0.0f, 1.0f, 1.0f); glVertex3f(-50.0f, 50.0f, 0.0f);

前面alpha全是 1.0f
ieihauko 2010-12-02
  • 打赏
  • 举报
回复
对a值至少也来个循环试试,
ssmtree 2010-11-10
  • 打赏
  • 举报
回复
顶一个!各位大侠都看看啊!
ssmtree 2010-11-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 gamemagic 的回复:]
渲染到纹理,再进行淡入淡出
[/Quote]已经试过了,也不行,好友可以自己读个纹理,添加四个点坐标,试试
ssmtree 2010-11-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 gamemagic 的回复:]
渲染到纹理,再进行淡入淡出
[/Quote]已经试过了,也不行,好友可以自己读个纹理,添加四个点坐标,试试
gamemagic 2010-11-08
  • 打赏
  • 举报
回复
渲染到纹理,再进行淡入淡出
张赐 2010-11-08
  • 打赏
  • 举报
回复
glColor4f(1.0f, 0.0f, 0.0f, 1.0f); glVertex3f(-50.0f, -50.0f, 0.0f);
glColor4f(0.0f, 1.0f, 0.0f, 1.0f); glVertex3f(50.0f, -50.0f, 0.0f);
glColor4f(0.0f, 0.0f, 1.0f, 1.0f); glVertex3f(50.0f, 50.0f, 0.0f);
glColor4f(1.0f, 0.0f, 1.0f, 1.0f); glVertex3f(-50.0f, 50.0f, 0.0f);


这里alpha全都是1,当然没有效果

8,305

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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