在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 },
};
这样只有左上象限被修改。 这在模拟器上可以正常工作,但是当我在设备上运行它时,除了左上象限以外,视图的其余部分会闪烁,即每次交替绘制都会使其变黑!
上述方法可以用于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