OpenGLESを使って作業する最初の10分間に私が気づいた問題が少しありますが、実際には関数呼び出しはほとんど同じですが、メソッドの設定方法はまったく異なります。OpenGl ES 2D Android再描画
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();
}
あなたは、もはや 'glVertexXY'がないということを意味しますか?そして、あなたはそれを言及しなかったので - あなたは['GLSurfaceView'](http://developer.android.com/reference/android/opengl/GLSurfaceView.html)を見つけましたか? –
彼らはglVertexXYで何の理由かわからなかった。私が読んだことから、人々はそれが非効率的であると言っています...そのインターネット、私は巨大な塩でそれを取るので。私は今夜家に帰るときにglsurfaceviewを見ていない。私は感謝するだろう! – Elliott