在iPhone上的较大的OpenGL纹理上绘制较小的纹理

我对OpenGL很陌生,这就是我的目标......

  • 从图像加载纹理。
  • 加载比第一个纹理小得多的纹理。
  • 现在继续在较大的事件上绘制较小的纹理,例如在较大的纹理上绘画。
  • 有人可以向我指出一些可能有助于做到这一点的材料吗?

    我看了一些书,但他们大多是进入3D动画类的东西,我不想去那个部门,我只需要2D纹理处理的东西。

    我正在关注这个例子...

    http://developer.apple.com/library/ios/#samplecode/GLImageProcessing/index.html

    对于我的实验,我正在修改示例中的drawGL()函数来执行此操作...

    第一次调用drawGL()时,没有任何变化,因此在视图上绘制了完整的纹理。

    在接下来的绘图中,我将flip-float数组更改为...

    V2fT2f flipquad[4] = {
     { 0, .5, 0, .5 },
     { .5, .5, .5, .5 },
     { 0, 1, 0, 0 },
     { .5, 1, .5, 0 },
    };
    

    这样只有左上象限被修改。 这在模拟器上可以正常工作,但是当我在设备上运行它时,除了左上象限以外,视图的其余部分会闪烁,即每次交替绘制都会使其变黑!


  • 将大的纹理绘制到帧缓冲区中,
  • 如你所愿,用小质地涂上它,
  • 调用glCopyTexImage2D或glCopyTexSubImage2D将绘制的纹理从帧缓冲区复制回纹理对象。
  • 上述方法可以用于OpenGL 1.1或更高版本。 但是它可能不如你想要的那么高效。 可能的优化(取决于你的OpenGL版本)是创建一个直接绑定到大纹理并在那里绘制的离屏帧缓冲区。 看glGenFramebuffers。


    其他人可能会发现Apple的这个示例很有用:GLPaint

    希望能帮助到你!

    链接地址: http://www.djcxy.com/p/33965.html

    上一篇: Drawing a smaller texture on a larger OpenGL texture on iPhone

    下一篇: 32 pixel gap at top of opengl es texture