【问题标题】:Scale Bitmapfont clearly with openGL (interpolation)?用openGL(插值)清楚地缩放Bitmapfont?
【发布时间】:2011-01-09 14:25:23
【问题描述】:

我在我的 openGL 应用程序中加载了一个位图字体(作为 png 图像),以从那里以固定大小呈现字符。那行得通。但是:如果我想以更小的尺寸缩放一些字形,它看起来并不好。有没有办法 - 不使用预生成的 mipmap(我有一大堆几个字符并且需要无级大小)来缩放这个更漂亮?某种插值方式还是什么?

目前我使用这样的东西(Mac OS X 上的 C/C++):

glPopMatrix();
glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBindTexture(GL_TEXTURE_2D, texture->getID());
glScalef(0.7f, 0.7f, 0); //scale here a size

{draw vertexes & set texcoords}

glDisable(GL_BLEND);
glDisable(GL_TEXTURE_2D);
glPushMatrix();

有什么建议吗?

【问题讨论】:

  • 此常见问题解答中的第 17.020 项:opengl.org/resources/faq/technical/fonts.htm
  • 那是关于 TrueType 字体的——我说的是位图字体。出于多种原因(即字体许可),我无意使用 TrueType 字体。

标签: c++ opengl bitmap-fonts


【解决方案1】:

您是否尝试过对纹理使用线性过滤?:

glTexParameteri(GL_TEXTURE_2D, GL_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_MAG_FILTER, GL_LINEAR);

绑定纹理后的这个。

【讨论】:

  • 哦,是的 - 谢谢。这正是我想要的。
  • BTW - Game Programming Gems,第 6 部分有一篇关于如何实现高质量标志缩放的文章(还有字形)。与会导致边界模糊的常规线性插值相比,这是一种获得更好结果的简单方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多