【问题标题】:iPhone OpenGL - How to gradient fade out a texture?iPhone OpenGL - 如何渐变淡出纹理?
【发布时间】:2010-09-04 13:32:39
【问题描述】:

我想自定义 FlowCover(Cover Flow remake)示例代码中的反射。现在,反射(纹理)只是透明的,但我希望它具有渐变,以便纹理逐渐消失为完全透明。

您将如何使用 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();

欢迎任何提示或关键词。

非常感谢。

【问题讨论】:

    标签: iphone opengl-es textures


    【解决方案1】:

    我对这个问题的解决方案是删除 openGL 反射并将具有反射和渐变的图像路径传输到 FlowCower。 Here 是创建图像反射的一个很好的例子。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        您可能想研究多重纹理。您可以通过使用第一个颜色和第二个 alpha 值的方式将基础纹理与渐变纹理结合起来。看看 glTexEnvi 命令。

        【讨论】:

          猜你喜欢
          • 2010-11-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-12
          • 1970-01-01
          • 1970-01-01
          • 2015-05-09
          相关资源
          最近更新 更多