текстовая строка opengl на кубе - PullRequest
0 голосов
/ 06 июня 2011

я делаю куб в opengl, и я хочу немного текста по бокам куба. я получил код куба ниже, но как мне сделать так, чтобы текстовая строка отображалась на нем?

    void drawBox()
{
    glBegin(GL_QUADS);

    glColor3f(1.0f, 0.0f, 0.0f);
    // FRONT
    glVertex3f(-0.5f, -0.5f, 0.5f);
    glVertex3f( 0.5f, -0.5f, 0.5f);
    glVertex3f( 0.5f, 0.5f, 0.5f);
    glVertex3f(-0.5f, 0.5f, 0.5f);
    // BACK
    glVertex3f(-0.5f, -0.5f, -0.5f);
    glVertex3f(-0.5f, 0.5f, -0.5f);
    glVertex3f( 0.5f, 0.5f, -0.5f);
    glVertex3f( 0.5f, -0.5f, -0.5f);

    glColor3f(0.0f, 1.0f, 0.0f);
    // LEFT
    glVertex3f(-0.5f, -0.5f, 0.5f);
    glVertex3f(-0.5f, 0.5f, 0.5f);
    glVertex3f(-0.5f, 0.5f, -0.5f);
    glVertex3f(-0.5f, -0.5f, -0.5f);
    // RIGHT
    glVertex3f( 0.5f, -0.5f, -0.5f);
    glVertex3f( 0.5f, 0.5f, -0.5f);
    glVertex3f( 0.5f, 0.5f, 0.5f);
    glVertex3f( 0.5f, -0.5f, 0.5f);

    glColor3f(0.0f, 0.0f, 1.0f);
    // TOP
    glVertex3f(-0.5f, 0.5f, 0.5f);
    glVertex3f( 0.5f, 0.5f, 0.5f);
    glVertex3f( 0.5f, 0.5f, -0.5f);
    glVertex3f(-0.5f, 0.5f, -0.5f);
    // BOTTOM
    glVertex3f(-0.5f, -0.5f, 0.5f);
    glVertex3f(-0.5f, -0.5f, -0.5f);
    glVertex3f( 0.5f, -0.5f, -0.5f);
    glVertex3f( 0.5f, -0.5f, 0.5f);
    glEnd();
}

Ответы [ 2 ]

2 голосов
/ 06 июня 2011

Различные подходы в зависимости от того, как вы хотите, чтобы это выглядело:

  • Нарисуйте текст в текстуре и используйте эту текстуру на поверхности куба
  • Визуализация текста в виде 3D-модели с использованием функций GLut
  • Просто нарисуйте 2D-текст в нужной позиции, используя функции non-openGL (проецируйте вершины куба на пространство экрана и используйте эту позицию в качестве начальной точки для вашего текста)

(Учебник по текстурированию в Google OpenGL и учебник по тексту в OpenGL, прежде чем задавать такие вопросы, там много информации ...)

1 голос
/ 06 июня 2011

Используйте растровые шрифты в качестве учебника.

Проверьте эту ссылку.

http://nehe.gamedev.net/lesson.asp?index=03

...