我必须不使用GLKit。我的项目的主要部分是用C++编写的,Objective-C中的另一部分是创建EAGLContext并设置主视图,我用它来绘制。的OpenGL ES 3.0的iOS主循环
现在,我得到了主屏幕和一些几何图元。他们都得出这样的(不是在循环中,只有一次):
Meteorite *met1 = new Meteorite();
aPosition = glGetAttribLocation(program, "a_position");
glVertexAttribPointer(aPosition, 2, GL_FLOAT, GL_FALSE, 0, met2->poly_coords);
glEnableVertexAttribArray(aPosition);
glDrawArrays(GL_LINE_STRIP, 0, met1->polygon_points+2);
所以,我有三个问题:1。 如果我有两个对象绘制? am我必须做这样?:
Meteorite *met1 = new Meteorite();
Meteorite *met2 = new Meteorite();
GLuint aPosition = glGetAttribLocation(program, "a_position");
glVertexAttribPointer(aPosition, 3, GL_FLOAT, GL_FALSE, 0, met1->poly_coords);
glEnableVertexAttribArray(aPosition);
glDrawArrays(GL_LINE_STRIP, 0, met1->polygon_points+2);
aPosition = glGetAttribLocation(program, "a_position");
glVertexAttribPointer(aPosition, 2, GL_FLOAT, GL_FALSE, 0, met2->poly_coords);
glEnableVertexAttribArray(aPosition);
glDrawArrays(GL_LINE_STRIP, 0, met2->polygon_points+2);
我怎样才能移动此对象分离?
我试图找出如何创建“主循环”或像这样重绘我的对象,也许删除它们,等
在OpenGL中,你可以只需创建例如while(1)循环并绘制该循环。
更新:好吧,如果1是好的,那么我解决了第二个问题,通过添加vec4将参数转换为我的VertexShader.vsh,因此我可以分别移动我的对象。 还有第三个问题
好了,现在我有DisplayLink的方法重绘。但是,如果我把这个方法放在绘制代码(问题)中,没有任何反应。 对象没问题,但它们不是draw.So我该如何告诉Opengl重新绘制屏幕? – kudinovdenis 2014-09-27 07:47:41
完全相同的方式,你已经介绍了它。 'EAGLContext -presentRenderBuffer:'。 – Tommy 2014-09-27 16:34:42