我在使用OpenGLES的前10分鐘內發現了一些問題,實際上函數調用大多是相同的,但是如何設置您的方法完全不同。OpenGl ES 2D Android redraw
我理解在OpenGL中動畫多邊形的基礎知識。改變模型矩陣,然後重新繪製場景並使用雙緩衝來減少快速移動或快速更新內容時出現的延遲。
所以在這裏我的問題。我將如何完成相同的工作。在C或C++的OpenGl中,我可以使用自己的方法調用將重新繪製場景的display()函數。
我環顧四周,不得不重新學習如何繪製一個簡單的多邊形。我認爲它是完全不同的。我在這裏環顧四周,我已經找到了一些關於事物的教程,但似乎沒有什麼能真正推動變革背後的方法論。我有興趣瞭解它與複製。
感謝
新材料:
這裏是我想在android系統來實現的。這段代碼是用C語言編寫的。從我的理解中,我瞭解OpenGL已被棄用,但我覺得我仍然可以實現同樣的目標。
此代碼反映了您有一個偵聽器等待按鈕被按下,一旦它完成相關的代碼並重新繪製顯示。這從我的理解,如果在OpenGL ES中有所不同。
void main(int argc, char** argv)
{
/* Standard GLUT initialization */
glutInit(&argc,argv);
/* default, not needed */
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500,500); /* 500 x 500 pixel window */
/* place window top left on display */
glutInitWindowPosition(0,0);
glutCreateWindow("COMP-5/6400 Assignment 2"); /* window title */
/* display callback invoked when window opened */
glutDisplayFunc(display);
glutSpecialFunc (processSpecialKeys);
myinit(); /* set attributes */
glutMainLoop(); /* enter event loop */
}
void processSpecialKeys(int key, int x, int y)
{
switch(key){
case GLUT_KEY_UP:
moveUp();
break;
case GLUT_KEY_DOWN:
moveDown();
break;
case GLUT_KEY_LEFT:
moveLeft();
break;
case GLUT_KEY_RIGHT:
moveRight();
break;
}
}
void moveUp(){
personX= (5.0*cosf(personRota))+personX;
personY= (5.0*sinf(personRota))+personY;
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
display();
}
你的意思是說,沒有'glVertexXY'了?而且 - 因爲你沒有提到它 - 你已經找到了['GLSurfaceView'](http://developer.android.com/reference/android/opengl/GLSurfaceView.html)? – 2012-04-06 05:19:40
雅他們因爲我不確定的原因而取消了glVertexXY。從我讀到的人們都說,它效率低下......它的互聯網,所以我用了一大片鹽。今晚我回家時我還沒有看過glsurfaceview,我會感謝! – Elliott 2012-04-06 16:11:16