[英]How to draw a simple rectangle with openGL ES for IOS?
我对openGL ES
极为openGL ES
,我在网上找到的教程对我来说真的没有任何意义。 我试图在IOS Objective C
在屏幕上绘制一个简单的2D矩形,但我不知道该怎么做。 我在一些教程中找到了它,但是它什么也没做:
- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect {
GLfloat square[] = {
0.25, 0.25, 0.0,
0.75, 0.25, 0.0,
0.25, 0.75, 0.0,
0.75, 0.75, 0.0
};
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glVertexPointer(3, GL_FLOAT, 0, square);
glEnableClientState(GL_VERTEX_ARRAY);
glClear(GL_COLOR_BUFFER_BIT);
glDrawArrays(GL_TRIANGLES, 0, 4);
glFlush();
glOrthof(0.0f, 1.0f, 0.0f, 1.0f, -1.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);}
任何可以有效地绘制square/rectangle
并带有一些解释的方法,将不胜感激。 谢谢!
您发布的代码可能在OpenGL ES 1.0中有效。
但是,您似乎正在使用的GLKit使用OpenGL ES 2.0。 您正在执行的函数调用在OpenGL ES 2.0上下文中均无效。
如代码所示,在GLES 1.0中,您以“立即模式”绘制事物。 OpenGL ES 2.0中的等效代码必须创建一个适当的着色器程序,然后将顶点数据作为VBO
提供给GPU(并可能还会创建VAO
以实现良好的性能)
考虑到OpenGL的复杂性,我认为即使是像绘制三角形这样简单的事情,也超出了StackOverflow答案的范围。 但是,您可以研究XCode游戏模板(创建一个新的Xcode项目,选择游戏模板,并使用OpenGL ES作为技术),并且使用Google搜索“ OpenGL ES 2.0教程”可能会提供大量信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.