ウィンドウスペースで直接描画したい場合は、モデルビューと投影に恒等行列を一時的にロードし、必要な場所にGL_POINT
を描画するのが最も簡単です。だからそれは次のようなものになります:
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
// draw the point here; specifics depending on whether you
// favour VBOs, VBAs, etc
// e.g. (assuming you don't have any client state enabled
// on entry and don't care about leaving the vertex array
// enabled on exit)
GLfloat vertexLocation[] = {0.0f, 0.0f, -1.0f};
glColor4f(0.0f, 0.0f, 0.0f, 1.0f);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, vertexLocation);
glDrawArrays(GL_POINTS, 0, 1);
// end of example to plot a GL_POINT
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
glPopMatrix();
// and possibly restore yourself to some other matrix mode
// if, atypically, the rest of your code doesn't assume modelview
私は0,0、-1でポイントを描く方法を知らないので、それを行うコードを追加できますか? – NullPointerException
私はいくつかのコードを追加しましたが、あなたの質問を再読み込みする際に、私があなたが求めていたものを誤解しているかもしれないと思います。あなたは、カメラを持っていて移動した場合、またはそれが目の空間に直接存在したい場合に影響を受ける3D世界の位置に(0、0、-1)をしますか? – Tommy
GLfloatは終了しません。アンドロイド:S何を使うべきですか? – NullPointerException