Opengl glRotatef和glutBitmapCharacter的替代方案?

Opengl glRotatef和glutBitmapCharacter的替代方案?,opengl,2d,glut,Opengl,2d,Glut,这就是我目前的代码。然而,就我的一生而言,我无法让文本旋转。我是否需要使用BitMapCharacter以外的内容 澄清一下,这只是一个2D程序 main.cpp #include "bookshelf.h" void Initialize() { glClearColor (1.0, 1.0, 1.0, 0.0 ); glMatrixMode( GL_PROJECTION ); glLoadIdentity(); glOrtho(0,799,799,0,0.0

这就是我目前的代码。然而,就我的一生而言,我无法让文本旋转。我是否需要使用BitMapCharacter以外的内容

澄清一下,这只是一个2D程序

main.cpp

#include "bookshelf.h"

void Initialize()
{
    glClearColor (1.0, 1.0, 1.0, 0.0 );
    glMatrixMode( GL_PROJECTION );
    glLoadIdentity();
    glOrtho(0,799,799,0,0.0,1.0);
}
void main( int argc, char *argv[] )
{    
    glutInit( &argc, argv );
    glutInitDisplayMode( GLUT_SINGLE | GLUT_RGB );
    glutInitWindowSize( 800, 800 );
    glutInitWindowPosition( 200, 50 );
    glutCreateWindow("Bookshelf - Ankit Ahuja");
    Initialize();
    glutDisplayFunc(Bookshelf);
    glutMainLoop();
}
书架

#include <GL/glut.h>

void Bookshelf()
{
    glMatrixMode(GL_MODELVIEW);
    glPushMatrix();
    glLoadIdentity();

    glColor3f( 0.0, 0.0, 0.0 );
    glRasterPos2f(170,90);
    glRotatef(0,0.0,0.0,0.0);
    char text1[50]="Apple Recipe Book";
    for(int i=0; i<50; i++) glutBitmapCharacter(GLUT_BITMAP_8_BY_13,text1[i]);
    glRasterPos2f(190,110);
    glRotatef(0,0.0,0.0,0.0);
    char text2[50]="Banana Recipe Book";
    for(int i=0; i<50; i++) glutBitmapCharacter(GLUT_BITMAP_8_BY_13,text2[i]);

    glMatrixMode(GL_MODELVIEW);
    glPopMatrix();
}
#包括
空书架()
{
glMatrixMode(GLU模型视图);
glPushMatrix();
glLoadIdentity();
GL3F(0.0,0.0,0.0);
glRasterPos2f(170,90);
glRotatef(0,0.0,0.0,0.0);
char text1[50]=“苹果食谱”;
对于(inti=0;iYep

glutBitmapCharacter()将在屏幕上显示一个字符(请注意对glRasterPos2f()的调用)

OpenGL中没有内置的3D字体支持,但有很多第三方API。有关摘要,请参阅此链接:

我不喜欢只粘贴链接,但我确实使用了上面列出的FreeType2库,而且我在这方面做得很成功。

是的

glutBitmapCharacter()将在屏幕上显示一个字符(请注意对glRasterPos2f()的调用)

OpenGL中没有内置的3D字体支持,但有很多第三方API。有关摘要,请参阅此链接:

我不喜欢只粘贴链接,但我确实使用了列出的FreeType2库,我在这方面取得了很大的成功。

试一试

或者使用
glutBitmapCharacter()
和您选择的“渲染到纹理”方法。然后使用您想要的纹理以任何方向渲染四边形。

进行拍摄


或者使用
glutBitmapCharacter()
以及您选择的“渲染到纹理”方法。然后以您想要的任何方向使用您的纹理渲染四边形。

哦,那么这只适用于3d字体?opengl在2d中没有可以旋转的东西?@AnkitAhuja:嗯,您可以使用纹理映射字体,这些字体将被转换。但是光栅操作(glDrawPixels、glBitmap等),它们始终与像素网格对齐。变换仅应用于光栅位置的起始位置。老实说,我不想麻烦使用它们(glReadPixels除外)。所有的绘图光栅操作都很慢,维护不善,实际上已经从更高版本的OpenGL中删除。哦,所以这只能在3d字体中实现?OpenGL在2d中没有可以旋转的东西?@AnkitAhuja:嗯,你可以使用纹理贴图字体,这些字体将被转换。但是光栅操作(glDrawPixels、glBitmap等),它们始终与像素网格对齐。变换仅应用于光栅位置的起始位置。老实说,我不想麻烦使用它们(glReadPixels除外)。所有图形光栅操作都很慢,维护不善,实际上已从更高版本的OpenGL中删除。