使用OpenGL在iphone上扭曲图像

使用OpenGL在iphone上扭曲图像,iphone,objective-c,image,opengl-es,distortion,Iphone,Objective C,Image,Opengl Es,Distortion,我对编程是相当陌生的,我现在这样做,只是为了教育自己,并从中获得乐趣 尽管读了这篇很棒的文章,但我在理解OpenGL的一些东西时遇到了很多困难。我还从apple开发者网站下载了一个示例,该示例使用.png图像作为精灵。我最终还是想使用图像 我所要做的就是拍摄一张图像并扭曲它,使它的四个角最终位于我提供的四个不同的x,y坐标。这将是一个计时器(CADisplayLink?),其中一个或多个点会在每一时刻发生变化。我只想在这些动态点之间拉伸它 我只是不太明白这到底是怎么回事。正如我在开发人员中心了解

我对编程是相当陌生的,我现在这样做,只是为了教育自己,并从中获得乐趣

尽管读了这篇很棒的文章,但我在理解OpenGL的一些东西时遇到了很多困难。我还从apple开发者网站下载了一个示例,该示例使用.png图像作为精灵。我最终还是想使用图像

我所要做的就是拍摄一张图像并扭曲它,使它的四个角最终位于我提供的四个不同的x,y坐标。这将是一个计时器(CADisplayLink?),其中一个或多个点会在每一时刻发生变化。我只想在这些动态点之间拉伸它

我只是不太明白这到底是怎么回事。正如我在开发人员中心了解的一些示例代码,我可以使用:

glVertexPointer(2, GL_FLOAT, 0, spriteVertices);
其中,spriteVertices类似于:

const GLfloat spriteVertices[] = {
-0.90f, -.85f,  
0.95f, -0.83f,  
-0.85f,  0.85f, 
0.80f,  0.80f,    
};
问题是,我不明白这些数字的真正含义,为什么有些数字前面有负数,以及它们是从哪里来计算四个角的。我需要如何改变得到的法线x,y坐标,才能把它们插入到这个坐标中?(我想要的x,y的数字看起来不像1到0之间的数字,是吗?我想要类似于每像素精度的数字


非常感谢您提供的任何帮助,即使只是更多阅读的链接。我很难为新手找到资源。

这并不像一开始看起来那么复杂。每对数字都与屏幕上的x,y位置有关。因此,0.80f,0.80f,表示x和y的可绘制区域的80%(从左到右,从下到上)。而-0.80,-0.80表示从右到左,从上到下移动到80%的可绘制区域。底片只是在两侧切换。值得注意的是,openGL从下到上(就像你从地面上看一栋建筑),而iPhone从上到下(就像你在读一本书)

要获得像素,将浮点值乘以可绘制区域1024 X 0.8=819.2

本教程是针对纹理的,但它非常棒,可以帮助您学习坐标系:

嗯……对不起,我刚意识到我想的平台不对。EAGLview默认为笛卡尔坐标系。