我是全新的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 - How to gradient fade out a texture?,它与我的问题相同,只是我希望渐变应用于主图像本身,而不是反射。但我无法从给出的答案中找出解决方案。
我想我应该使用glTexEnvi
,但是如何使用渐变来绘制另一个图像呢?
发布于 2012-04-06 16:53:04
可以设置一个glColorPointer (或glVertexAttribPointer),使四边形的四个顶点中的每一个都获得不同的Alpha值,而不是在绘制四边形之前调用glColor4f吗?
即RGBA值:
(x,x,x,1) (x,x,x,0)
-----------------
| |
| |
| |
| |
| |
| |
-----------------
(x,x,x,1) (x,x,x,0)
这会给你一个从右到左的alpha渐变。
https://stackoverflow.com/questions/10029479
复制相似问题