2

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

这是我需要缩放的:

我可以改变它的大小,只需把这个:

font->FaceSize(12);

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

4

2 回答 2

2

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

于 2013-01-01T12:33:39.980 回答
1

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

因为它只是渲染 OpenGL 基元,所以这种方法会考虑您使用 设置的所有常用转换glTranslatefglScalef依此类推。为了获得最清晰的结果,请使用glOrtho设置像素完美的投影矩阵。

于 2013-01-01T13:31:07.570 回答