glScalef 用于光栅字体,OpenGL
Posted
技术标签:
【中文标题】glScalef 用于光栅字体,OpenGL【英文标题】:glScalef for raster fonts, OpenGL 【发布时间】:2013-01-01 12:12:31 【问题描述】:我有一个简单的问题。我正在使用 FTGL 库在我的游戏应用程序中绘制我的 PixmapFont
。我的问题是 - 是否可以使用 glScalef()
来缩放光栅字体?据我了解,如果我必须使用glRasterPos()
而不是glTranslatef()
它也可能考虑glScalef()
功能?但如果是这样,是否有任何方法可以缩放这种字体?
这是我需要缩放的:
我可以改变它的大小,只需输入:
font->FaceSize(12);
但是对于这么小的字体,它给了我模糊的效果。从我在某处读到的内容来看,最好渲染更大尺寸的字体 - 例如72 - 然后按比例缩小,因为它可以提供更好的结果。
【问题讨论】:
【参考方案1】:OpenGL 位图绘制函数 (glBitmap) 不受转换管道的影响,因为它们直接进入帧缓冲区。然而,位图绘制功能过去总是很慢,支持很差,并且已从更高版本的 OpenGL 中完全删除。
【讨论】:
像往常一样 - 非常有帮助。谢谢,datenwolf。【参考方案2】:您需要使用texture fonts,而不是像素图(光栅)字体。这会将字体绘制为映射到三角形基元的纹理,这比直接绘制到帧缓冲区更加灵活和广泛支持。另请参阅FTTextureFont
documentation。
因为它只是渲染 OpenGL 基元,所以这种方法会考虑您使用 glTranslatef
、glScalef
等设置的所有常用转换。为了获得最清晰的结果,请使用glOrtho
设置像素完美的投影矩阵。
【讨论】:
谢谢你,托马斯。我想知道像素图字体是否是一个不错的选择。现在我知道不是。以上是关于glScalef 用于光栅字体,OpenGL的主要内容,如果未能解决你的问题,请参考以下文章
光学基于matlab GUI光栅条纹投影生成含Matlab源码 2118期
光学基于matlab GUI光栅条纹投影生成含Matlab源码 2118期