OpenGLES로 작업하면서 처음 10 분 안에 알아 차 렸던 문제가 있습니다. 실제로 함수 호출은 거의 동일하지만 메서드 설정 방법은 완전히 다릅니다.OpenGl ES 2D 안드로이드 다시 그리기
OpenGL에서 폴리곤 애니 메이팅의 기본 사항을 이해합니다. modelmatrix를 변경 한 다음 장면을 다시 드로잉하고 이중 버퍼링을 사용하여 빠르게 이동하거나 빠르게 업데이트 할 때 나타나는 지연을 줄이는 아이디어.
여기 내 질문입니다. 나는 어떻게 그것을 달성 할까. C 또는 C++ OpenGl에서 장면을 다시 그리는 display() 함수를 호출하는 자체 메서드를 사용할 수 있습니다.
나는 주위를 둘러 보았고 간단한 다각형을 그리는 법을 다시 배워야했습니다. 나는 그것이 완전히 다르다고 가정한다. 나는 여기를 둘러 보았고 사물에 대한 자습서를 찾았지만 그 변화의 배경에있는 방법론을 실제로 집으로 몰아 넣는 것은 없다. 나는 그것이 복사 대 이해에 관심이 있습니다.
감사
신소재
: 여기내가 안드로이드에 달성하기 위해 노력하고 있습니다 것입니다. 이 코드는 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)을 발견 했습니까? –
그들은 glVertexXY로 어떤 이유인지 잘 모릅니다. 내가 읽었던 것에서 사람들은 그것이 비효율적이라고 말했다. .. 그 인터넷. 그래서 나는 거대한 소금물로 그것을 잡는다. 나는 오늘 밤 집에 도착했을 때 glsurfaceview를 들여다 보지 않았습니다. 감사합니다! – Elliott