Opengl es opengl es:绘制渐变淡入的纹理

Opengl es opengl es:绘制渐变淡入的纹理,opengl-es,gradient,Opengl Es,Gradient,我对opengl完全陌生,需要一些帮助来绘制纹理,并在其上应用渐变 现在,我使用以下代码绘制纹理: 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); 在上述代码中gl

我对opengl完全陌生,需要一些帮助来绘制纹理,并在其上应用渐变

现在,我使用以下代码绘制纹理:

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)将透明度应用于绘制的图像。现在,我想对图像应用透明渐变,以模拟淡出效果,而不是纯色透明颜色

找到了这个线索,和我的问题一样,只是我想把梯度应用到主图像本身,而不是反射。但我无法从给出的答案中找出解决方案


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

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

i、 e.RGBA值:

 (x,x,x,1)       (x,x,x,0)
     -----------------
     |               |
     |               |
     |               |
     |               |
     |               |
     |               |
     -----------------
  (x,x,x,1)      (x,x,x,0)

这将为您提供从右到左的alpha渐变

在绘制四边形之前,您可以设置GLCOLORPOINT(或GLVERTEXATTRIBPOINT),而不是调用glColor4f,以便四边形的四个顶点中的每一个都获得不同的alpha值吗

i、 e.RGBA值:

 (x,x,x,1)       (x,x,x,0)
     -----------------
     |               |
     |               |
     |               |
     |               |
     |               |
     |               |
     -----------------
  (x,x,x,1)      (x,x,x,0)

这将为您提供从右到左的alpha渐变

你的意思是在时间上淡出,还是像从左到右的渐变一样,左侧是不透明的,右侧是完全透明的(或上/下、上/左/右下等等)?不需要随着时间的推移淡出动画,只需要如你所说的静态淡出效果..你的意思是在时间上淡出,或者就像一个从左到右的渐变,左侧是不透明的,右侧是完全透明的(或者顶部/底部,顶部左/底部右等)?不需要随着时间的推移淡入淡出动画,只需要静态淡入淡出效果,就像你说的。。