1

我对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,但是如何使用渐变绘制另一个图像?

4

1 回答 1

1

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

即RGBA值:

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

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

于 2012-04-06T16:53:03.813 回答