我在使用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