glScalef用于光栅字体,OpenGL

时间:2013-01-01 12:12:31

标签: c++ opengl fonts ftgl

我有一个简单的问题。我正在使用FTGL库在我的游戏应用程序中绘制PixmapFont。我的问题是 - 是否可以使用glScalef()来缩放光栅字体?据我所知,如果我必须使用glRasterPos()而不是glTranslatef(),它也可能会考虑glScalef()函数?但如果是这样,是否有任何缩放此字体的方法?

这就是我需要缩放的内容:

我可以通过简单地改变它的大小来改变它:

font->FaceSize(12);

但是它给了我这么小字体的模糊效果。从我在某处读到的内容来看,渲染更大尺寸的字体是很好的 - 例如72 - 然后将其缩小,因为它可以提供更好的结果。

2 个答案:

答案 0 :(得分:2)

OpenGL位图绘制函数(glBitmap)不受转换管道的影响,因为它们直接进入帧缓冲区。但是,位图绘制功能总是很慢,支持很差,并且已经完全从OpenGL的更高版本中删除。

答案 1 :(得分:1)

您需要使用texture fonts,而不是像素图(光栅)字体。这将字体绘制为映射到三角形图元的纹理,与直接绘制到帧缓冲区相比,它更加灵活和广泛支持。另请参阅FTTextureFont documentation

因为它只是渲染OpenGL基元,所以这种方法会考虑您使用glTranslatefglScalef等设置的所有常规转换。要获得最干净的结果,请使用glOrtho设置像素完美的投影矩阵。