首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >opengl es:使用渐变渐变绘制纹理

opengl es:使用渐变渐变绘制纹理
EN

Stack Overflow用户
提问于 2012-04-05 21:25:26
回答 1查看 2.4K关注 0票数 1

我是全新的opengl,需要一些帮助来绘制一个纹理与渐变应用在它上面。

现在我用下面的代码绘制一个纹理:

代码语言:javascript
代码运行次数:0
运行
复制
glPushMatrix();
glBindTexture(GL_TEXTURE_2D,fcr.texture);
glTranslatef(trans, 0, 0);
glScalef(sc,sc,1.0);
glColor4f(1.0,1.0,1.0,0.4);
glDrawArrays(GL_TRIANGLE_STRIP,0,4);
glColor4f(1,1,1,1);

在上面的代码中,glColor4f(1.0,1.0,1.0,0.4);将透明度应用于绘制的图像。现在,为了模拟淡出效果,我想对图像应用透明渐变,而不是纯透明颜色。

找到了这个线程iPhone OpenGL - How to gradient fade out a texture?,它与我的问题相同,只是我希望渐变应用于主图像本身,而不是反射。但我无法从给出的答案中找出解决方案。

我想我应该使用glTexEnvi,但是如何使用渐变来绘制另一个图像呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-07 00:53:04

可以设置一个glColorPointer (或glVertexAttribPointer),使四边形的四个顶点中的每一个都获得不同的Alpha值,而不是在绘制四边形之前调用glColor4f吗?

即RGBA值:

代码语言:javascript
代码运行次数:0
运行
复制
 (x,x,x,1)       (x,x,x,0)
     -----------------
     |               |
     |               |
     |               |
     |               |
     |               |
     |               |
     -----------------
  (x,x,x,1)      (x,x,x,0)

这会给你一个从右到左的alpha渐变。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10029479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档