0

我正在使用 freetype2 加载一个 truetype 字体并构建一个 VBO 来呈现它。它工作正常,但是当我执行 glTranslate 以使文本相对于特定区域(按钮文本)居中时,字符的 uv 似乎正在发生变化。

我已经对此进行了无止境的调试,并且顶点和 uv 缓冲区中的所有值都是正确的。在下面的屏幕截图中,您可以看到未“居中”的文本渲染得很好,但按钮中的文本显示了一些伪影,例如 uv 是否错误。两个缓冲区,居中的缓冲区和左对齐的缓冲区都是等效且正确的,因此当我将文本居中时,必须有其他东西弄乱了渲染。

我将发布一个屏幕截图,然后根据要求添加代码,因为呈现这些控件的逻辑非常大。

http://i.imgur.com/iULIXAU.png

我希望有人能仅对这些信息有所启发,并向我伸出援助之手,因为我真的迷路了。

编辑:另一个奇怪的是,当文本中的字符数是偶数时,文本呈现时没有伪影。但是当它很奇怪时,它会变得混乱。每个字符都是一个带纹理的四边形。

4

1 回答 1

0

解决了。问题是,当我使用浮点数进行翻译时,有时这些值是分数的,并且像素对齐的四边形被缩放了。

解决方案是将这些值转换为 float_value=(float)(int)float_value 以确保它们不是小数。

不管怎么说,还是要谢谢你!

于 2013-06-27T18:09:33.397 回答