0
AndroidでNDESを使用してライブラリGLESv1_CMでシンプルシーンをレンダリングしています。アンドロイド4(とAndroid NDK:OpenGL ESの奇妙な線の座標
さらに、Androidのエミュレータ上:私は、Android 2.2または3.2で、デバイス上でそれを実行したときに
void render(Rect viewport)
{
glViewport(viewport.left, viewport.top, viewport.Width(), viewport.Height());
glClear(GL_COLOR_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrthof(viewport.left, viewport.right, viewport.top, viewport.bottom, -1, 1);
GLfloat points[] = { 5, 50, 1, 1, 1, 1,
7, 50, 1, 1, 1, 1,
7, 50, 1, 0, 0, 1,
7, 52, 1, 0, 0, 1,
8, 50, 0, 1, 0, 1,
10, 50, 0, 1, 0, 1};
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glVertexPointer(2,GL_FLOAT,sizeof(GLfloat)*6,&points);
glColorPointer(4,GL_FLOAT,sizeof(GLfloat)*6,&points[2]);
glDrawArrays(GL_LINES,0,6);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_COLOR_ARRAY);
}
は、私は私がこれを持って3ラインを交差させたいが、更新:
それがこの絵のように見えるようにすることは可能です:2.3エミュレータ上同じ)私はこれを持っていますOpenGL2を使わずにすべてのAndroidバージョンのすべてのデバイスで?
投影のこのタイプのためthe OpenGL FAQによると、あなたに
残念ながら、この解決法は機能しません。それは、すべてのポイントを右上に移動するだけです。私はそれが3d以上で2dのために書かれていて、それは2番目に、それがopenglのためではなくopenglのために書かれたからだと思います。しかし、興味深いリンクに感謝します。 –
Er、いいえ。世界座標がスクリーンピクセルに正確にマップされている正射投影法を使用している場合、そのコードスニペットはピクセルの0.375で調整されます。それは確かに "すべてのポイントを右上に"移動しません。おそらくあなたは異なるmodelview行列を持っています...あなたの元の質問にはそれが含まれていないので、私はそれが単位行列であると仮定しました。 –
ok、私は少し私のコードを修正し、今は動作します。私が望むほど完璧ではないが、はるかに良い。ありがとうございます –