关于用于栅格字体,OpenGL的c ++:glScalef

glScalef for raster fonts, OpenGL

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

这就是我需要扩展的范围:

我可以通过简单地输入以下内容来更改其大小:

1
font->FaceSize(12);

但是,这种小字体给我模糊的效果。 根据我在某处阅读的内容,最好以较大的字体呈现字体-例如 72-然后将其缩小,因为它会产生更好的结果。


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


您需要使用纹理字体,而不是pixmap(光栅)字体。 这将字体绘制为映射到三角形基元的纹理,这比直接绘制到帧缓冲区要灵活得多并且得到广泛支持。 另请参见FTTextureFont文档。

因为它只是渲染OpenGL原语,所以这种方法考虑了使用glTranslatefglScalef等设置的所有常规转换。 为了获得最清晰的结果,请使用glOrtho设置像素完美的投影矩阵。