0

我在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();
}
4

2 回答 2

2

不同的方法取决于您希望它的外观:

  • 在纹理中绘制文本并在立方体面上使用该纹理
  • 使用 GLut 函数将文本渲染为 3D 模型
  • 只需使用非 openGL 函数在正确的位置绘制 2D 文本(将立方体顶点投影到屏幕空间并使用该位置作为文本的起点)

(在提出此类问题之前,Google OpenGL 纹理教程和 OpenGL 文本教程,那里有很多信息......)

于 2011-06-06T09:37:11.387 回答
1

使用位图字体作为 nehe 教程。

检查那个链接。

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

于 2011-06-06T09:39:20.123 回答