4

いくつかの図を含む OpenGL シーンがあります。「レンダリング」後に図形の頂点の位置を計算するために何をする必要があるか教えてください。おそらくいくつかの行列を手動で乗算する必要があることはわかっていますが、どれがどのように乗算されるのかわかりません。

助けてくれてありがとう!

4

2 に答える 2

6

gluProject()関数を見てみましょう。

編集: OpenGL FAQにもあります:
9.100 特定のオブジェクト空間座標の画面座標を見つけるにはどうすればよいですか?
(同じ答えですが。)

于 2010-11-23T15:30:13.280 に答える
2

画面上の最大範囲をピクセル単位で知りたいですか?

その場合、最も簡単な方法は、すべての頂点に対して 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

}
于 2010-11-23T15:49:51.260 に答える