Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在OpenGL ES 2.0中在视口外绘制_Iphone_Xcode_Opengl Es_3d - Fatal编程技术网

Iphone 在OpenGL ES 2.0中在视口外绘制

Iphone 在OpenGL ES 2.0中在视口外绘制,iphone,xcode,opengl-es,3d,Iphone,Xcode,Opengl Es,3d,我当时正在OpenGL ES 1.1中构建一个2D项目,但决定切换到2.0,因为我只打算为iPad开发 在1.1中,当设置视口时,概念似乎是只查看整个3D空间的一部分,例如: CGRect rect = view.bounds; glOrthof(-1.0, // Left 1.0, //

我当时正在OpenGL ES 1.1中构建一个2D项目,但决定切换到2.0,因为我只打算为iPad开发

在1.1中,当设置视口时,概念似乎是只查看整个3D空间的一部分,例如:

CGRect rect = view.bounds;     
    glOrthof(-1.0,                                          // Left
              1.0,                                          // Right
             -1.0 / (rect.size.width / rect.size.height),   // Bottom
              1.0 / (rect.size.width / rect.size.height),   // Top
              0.01,                                         // Near
              10000.0);                                     // Far
    glViewport(0, 0, rect.size.width, rect.size.height);
(摘自OpenGL ES)

从我在2.0中看到的一切来看,没有GlOrthof方法来指定您正在查看的内容,只有glViewport调用,它被描述为设置您正在绘制的平面

我的目的是绘制一个二维线框贴图,可以放大和平移。我假设要实现这一点,我将在视口内外绘制,然后在用户四处平移时更改视口坐标

  • 你如何在画的外面画画 OpenGL ES 2.0中的视口

  • 这是实现目标的正确方法吗 我想要实现什么

  • 我误解了一切吗 完全


谢谢你的帮助

您应该使用矩阵在世界各地移动(glOrthof是将当前矩阵乘以使用指定参数创建的投影矩阵),在OpenGL ES 2.0中,您负责在着色器中使用矩阵(主要用于计算最终位置,将位置乘以ModelViewProjection矩阵),例如,您可以使大2D平面平行于屏幕,只需沿Z轴(视图矩阵)移动即可获得缩放功能

可获得良好的资源:

或者浏览一些gamedev页面,如