私はいくつかの数字でOpenGLのシーンを持っています。 「レンダリング」の後、数字の頂点の位置を計算するために必要なことを教えてください。私はおそらく手動でいくつかの行列を乗算する必要があることを知っているが、私はそれらとどのようにわからない。レンダリング後のOpenGLのポイント位置(3d - > 2d)
ありがとうございました!
私はいくつかの数字でOpenGLのシーンを持っています。 「レンダリング」の後、数字の頂点の位置を計算するために必要なことを教えてください。私はおそらく手動でいくつかの行列を乗算する必要があることを知っているが、私はそれらとどのようにわからない。レンダリング後のOpenGLのポイント位置(3d - > 2d)
ありがとうございました!
gluProject()
の機能を見てください。
編集:またOpenGL FAQで見つかった:
9.100 How can I find the screen coordinates for a given object-space coordinate?
(。しかし同じ答え、)
あなたはpixlesで、画面上の最大エクステントを知りたいですか?
もしそうなら、最も簡単な方法は、すべての頂点に対してgluProjectを呼び出し、最大と最小のxとyの位置を保存することです。
は、次のようになります。
GLdouble modelview[16], projection[16]
GLint viewport[4];
glGetDoublev(GL_MODELVIEW_MATRIX, *modelView);
glGetDoublev(GL_PROJECTION_MATRIX, *projection);
glGetIntegerv(GL_VIEWPORT, *viewport);
double tx, ty, tz;
for(i = 0; i < VertexCount; i++)
{
glProject(vertices[i].x, vertices[i].y, vertices[i].z,
modelview, projection, viewport,
*tx, *ty, *tz);
// now, the 2d position of the ith Vertex is stored in tx, ty, tz.
// you can now use these values to determine the 2d-extends on your screen
}