Opengl: 3d->2d

  • Автор темы TmpUser
  • Дата начала
Статус
Закрыто для дальнейших ответов.
T

TmpUser

#1
Здарова люди! Очень интересуюсь вот таким вот вопросом:
Допустим в OpenGL есть какой-то объект, например просто вершина, которая имеет какие-то координаты (x,y,z). Включена перспектива, glViewport при ресайзе используется, со сценой проделываются произвольные трансформации(хотябы трансляция и повороты). Как можно получить по тем самым мировым координатам точки, её оконные координаты(координаты её проекции на экран так сказать)? Мож как-то на текущии матрицы множить? Заранее благодарен!
 
6

62316e

#2
Код:
void To3D()
{
glMatrixMode(GL_PROJECTION); //Switch to projection matrix
glPopMatrix();				// Restore the old projection matrix
glMatrixMode(GL_MODELVIEW);  // Return to modelview matrix
glPopMatrix();				// Restore old modelview matrix
glEnable(GL_TEXTURE_2D);	 // Turn on textures, don't want our text textured
glEnable(GL_LIGHTING);
glPopAttrib();				// Restore depth testing
}
void To2D()
{
glPushAttrib(GL_DEPTH_TEST); // Save the current Depth test settings (Used for blending )
glDisable(GL_DEPTH_TEST);	 // Turn off depth testing (otherwise we get no FPS)
glDisable(GL_TEXTURE_2D);	 // Turn off textures, don't want our text textured
glDisable(GL_LIGHTING);
glMatrixMode(GL_PROJECTION); // Switch to the projection matrix
glPushMatrix();			  // Save current projection matrix
glLoadIdentity();
glOrtho(0, 800, 0, 600, -1, 1); // Change the projection matrix using an orthgraphic projection
glMatrixMode(GL_MODELVIEW); // Return to the modelview matrix
glPushMatrix();			 // Save the current modelview matrix
glLoadIdentity();
}
 
Статус
Закрыто для дальнейших ответов.