2

これが私のコードです。しかし、私の一生の間、テキストを回転させることはできません。glutBitmapCharacter以外のものを使用する必要がありますか?

明確にするために、これは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();
}

bookshelf.h

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

2 に答える 2

0

うん。

glutBitmapCharacter() は、画面上に文字をスプラッティングするだけです (glRasterPos2f() の呼び出しに注意してください)。

OpenGL には 3D フォントの組み込みサポートはありませんが、多くのサードパーティ API がサポートされています。概要については、このリンクを参照してください: OpenGL フォント

私は単にリンクを貼り付けるのは好きではありませんが、記載されている FreeType2 ライブラリを使用しており、これでうまくいきました。

于 2012-09-27T20:23:02.183 に答える
0

試してみてくださいglutStrokeCharacter()

またはglutBitmapCharacter()、render-to-texture メソッドの選択を使用します。次に、テクスチャを使用してクワッドを任意の方向にレンダリングします。

于 2012-09-27T20:26:04.020 に答える