iPhone OpenGL - 如何渐变淡出纹理?

时间:2010-08-21 07:23:28

标签: iphone opengl-es textures

我想自定义FlowCover(Cover Flow翻拍)示例代码的反射。现在,反射(纹理)只是透明的,但我希望它有一个渐变,这样纹理就会变得完全透明。

你如何使用OpenGL实现这种效果?这是处理纹理的代码。

glPushMatrix();
glBindTexture(GL_TEXTURE_2D,fcr.texture);
glTranslatef(trans, 0, 0);
glScalef(sc,sc,1.0);
glMultMatrixf(m);
glDrawArrays(GL_TRIANGLE_STRIP,0,4);

// reflect
glTranslatef(0,-2,0);
glScalef(1,-1,1);
glColor4f(0.5,0.5,0.5,0.5);
glDrawArrays(GL_TRIANGLE_STRIP,0,4);
glColor4f(1,1,1,1);

glPopMatrix();

欢迎任何提示或关键词。

非常感谢。

3 个答案:

答案 0 :(得分:1)

我解决这个问题的方法是删除openGL反射和路径图像,反射和渐变到FlowCower。 Here是创建图像反射的一个很好的例子。

答案 1 :(得分:1)

用渐变方式绘制反射是个好主意。 ^ _ ^

我认为你可以放一个光源,并改变项目视图的法线向量。光源会产生一些渐变效果。

答案 2 :(得分:1)

您可能希望了解多重纹理。您可以使用第一个颜色和第二个颜色的Alpha值将基础纹理与渐变纹理组合在一起。看一下glTexEnvi命令。