OpenGLES を使用してから最初の 10 分以内に気付いた、関数呼び出しはほとんど同じですが、メソッドの設定方法がまったく異なることに少し問題があります。
OpenGL でポリゴンをアニメーション化する基本を理解しています。モデルマトリックスを変更してからシーンを再描画し、ダブルバッファリングを使用して、物事をすばやく移動したり、物事をすばやく大量に更新したりするときに見られる遅延を削減するというアイデア。
ここで私の質問です。どうすれば同じことを達成できますか。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();
}