GLUT Tutorials 12:位图字体
Posted flyinggod
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GLUT Tutorials 12:位图字体相关的知识,希望对你有一定的参考价值。
博客转自:http://www.lighthouse3d.com/tutorials/glut-tutorial/bitmap-fonts/
位图字体是一个2维的字体,虽然我们会将它放置在3维的世界内,但是这些字体没有厚度,不可以被旋转或者缩放;只可以被平移。而且,这种字体永远只朝向观测者的视野,就像看着宣传板一样。尽管这些特性是潜在的劣势,但是从另外一方面来看,我们不需要关心如何设置他的朝向使其朝向观测者的视野。
在这个小节,我们将呈现 GLUT 如何将位图字体显示在屏幕上。我们需要使用函数 glutBitmapCharacter 去写一个字符。
void glutBitmapCharacter(void *font, int character) Parameters: font – the name of the font to use (see bellow for a list of what’s available character – what to render, a letter, symbol, number, etc…
The font options available are:
- GLUT_BITMAP_8_BY_13
- GLUT_BITMAP_9_BY_15
- GLUT_BITMAP_TIMES_ROMAN_10
- GLUT_BITMAP_TIMES_ROMAN_24
- GLUT_BITMAP_HELVETICA_10
- GLUT_BITMAP_HELVETICA_12
- GLUT_BITMAP_HELVETICA_18
想要观测各种字体的显示效果,可以尝试将所有字体类型都显示在弹出菜单中。下面的函数输出一个字符到当前光栅位置。
glutBitmapCharacter(GLUT_BITMAP_HELVETICA_18,‘3‘);
需要解释一下光栅位置,我们可以通过函数OpenGL库中的 glRasterPos 函数设置光栅位置。
void glRasterPos2f(float x, float y); void glRasterPos3f(float x, float y, float z); Parameters: x, y, z – local coordinates for the text to appear
函数 glutBitmapCharacter 依据字符的宽度在指定位置渲染字符。因此,如果想渲染字符串,需要连续调用 glutBitmapCharacter 函数,将会得到想要的显示效果。下面是渲染字符串的例子
void renderBitmapString( float x, float y, float z, void *font, char *string) { char *c; glRasterPos3f(x, y,z); for (c=string; *c != ‘