Opengl: 3d->2d

Тема в разделе "Delphi - Multimedia, Графика, Игры", создана пользователем TmpUser, 28 окт 2005.

Статус темы:
Закрыта.
  1. TmpUser

    TmpUser Гость

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

    62316e Гость

    Код (Text):
    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();
    }
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей