我有一个简单的问题。我正在使用FTGL库在我的游戏应用程序中绘制PixmapFont
。我的问题是 - 是否可以使用glScalef()
来缩放光栅字体?据我所知,如果我必须使用glRasterPos()
而不是glTranslatef()
,它也可能会考虑glScalef()
函数?但如果是这样,是否有任何缩放此字体的方法?
这就是我需要缩放的内容:
我可以通过简单地改变它的大小来改变它:
font->FaceSize(12);
但是它给了我这么小字体的模糊效果。从我在某处读到的内容来看,渲染更大尺寸的字体是很好的 - 例如72 - 然后将其缩小,因为它可以提供更好的结果。
答案 0 :(得分:2)
OpenGL位图绘制函数(glBitmap)不受转换管道的影响,因为它们直接进入帧缓冲区。但是,位图绘制功能总是很慢,支持很差,并且已经完全从OpenGL的更高版本中删除。
答案 1 :(得分:1)
您需要使用texture fonts,而不是像素图(光栅)字体。这将字体绘制为映射到三角形图元的纹理,与直接绘制到帧缓冲区相比,它更加灵活和广泛支持。另请参阅FTTextureFont
documentation。
因为它只是渲染OpenGL基元,所以这种方法会考虑您使用glTranslatef
,glScalef
等设置的所有常规转换。要获得最干净的结果,请使用glOrtho
设置像素完美的投影矩阵。