1

glutBitmapCharacters を使用して、opengl でテキストを描画することができました。タイトルを描きたいのですが、サイズが大きくなければなりません。それ、どうやったら出来るの?私の drawtext 関数のコードは次のとおりです。

   void drawText(const char *text,int length , int x , int y)
 {
   glMatrixMode(GL_PROJECTION);
   double *matrix = new double[16];
   glGetDoublev(GL_PROJECTION_MATRIX,matrix);
   glLoadIdentity();
   glOrtho(0,800,0,600,-5,5);
   glMatrixMode(GL_MODELVIEW);
   glLoadIdentity();
   glPushMatrix();
   glLoadIdentity();
   glRasterPos2i(x,y);
   for ( int i = 0 ; i < length ; i++)
       glutBitmapCharacter(GLUT_BITMAP_9_BY_15,(int)text[i]);
   delete matrix;
 }
4

2 に答える 2

2

glutBitmapCharacterglBitmapフードの下で使用します。したがって、テキスト サイズを変更することはできません。テキストの正確なピクセルサイズになります。

サイズを変更できるテキストが必要な場合は、「ストローク」文字関数 ( などglutStrokeCharacter) を使用する必要があります。これらは実際の三角形などを描画し、サイズはマトリックス スケール操作 ( ) で調整できますglScale

于 2013-02-25T07:22:41.643 に答える
1

@NicolBolasの回答への追加として、特にフォントに関する結果は常に満足できるとは限りませんが、生のビットマップデータをいつでもスケーリングできます(Photoshopなどのイメージングプログラムと同じように)。ただし、自然数によるスケーリングは常にピクセルパーフェクトになります。

このようなスケーリングを使用するには、フォントをテクスチャにレンダリングする必要があります。その後、それらをテクスチャ付きの四角形として画面にレンダリングし、組み込みの OpenGL スケーリングを使用できます。

私はこのアプローチを推奨していないことに注意してください。より洗練された機能が必要な場合は、おそらく のようなより大きく機能の豊富なライブラリfreetype-glが適切でしょう。

于 2013-02-25T07:31:00.350 に答える