我必須不使用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