【问题标题】:glScalef for raster fonts, OpenGLglScalef 用于光栅字体,OpenGL
【发布时间】:2013-01-01 12:12:31
【问题描述】:

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

这是我需要缩放的:

我可以改变它的大小,只需输入:

font->FaceSize(12);

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

【问题讨论】:

    标签: c++ opengl fonts ftgl


    【解决方案1】:

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

    【讨论】:

    • 像往常一样 - 非常有帮助。谢谢,datenwolf。
    【解决方案2】:

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

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

    【讨论】:

    • 谢谢你,托马斯。我想知道像素图字体是否是一个不错的选择。现在我知道不是。
    猜你喜欢
    • 2016-12-12
    • 1970-01-01
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-22
    • 1970-01-01
    相关资源
    最近更新 更多