的OpenGL ES:绘制一个纹理衰落坡度(opengl es: drawing a texture

2019-09-16 08:58发布

我完全新的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); 适用于透明的绘制的图像。 现在代替实心透明的颜色,我想的透明梯度应用到图像以模拟淡出效果。

发现这个线程iPhone OpenGL的-如何渐变淡出纹理? ,这是相同的我的问题除了我想要的梯度被施加到主图像本身,而不是反射。 但我无法弄清楚从给出答案的解决方案。

我想我应该用glTexEnvi ,但随后如何绘制渐变另一个图像?

Answer 1:

除了绘制四之前调用glColor4f的,你可以设置一个glColorPointer(或glVertexAttribPointer),使得每个四边形的四个顶点的得到不同的α值?

即RGBA值:

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

这将使你由右至左的阿尔法梯度。



文章来源: opengl es: drawing a texture with fading gradient