OpenGL:gltranslate VBO时奇数字体UV移位

时间:2013-06-27 17:10:48

标签: c++ opengl

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

我调试了这个没有尽头,顶点和uv缓冲区中的所有值都是正确的。在下面的屏幕截图中,您可以看到不是“居中”的文本渲染得很好,但按钮中的文本显示了一些工件,比如uv是错误的。两个缓冲区,中心缓冲区和左对齐缓冲区都是等效的,因此当我将文本居中时,必须有其他东西弄乱渲染。

我会发布截图,然后我会按要求添加代码,因为呈现这些控件的逻辑非常大。

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

我希望有人能够仅仅通过这些信息得到启发并抓住我的手,因为我真的迷失在这里。

编辑:另一个奇怪的是,当文本中的字符数是偶数文本呈现没有工件。但是当它奇怪的时候会搞砸了。每个角色都是纹理四边形。

1 个答案:

答案 0 :(得分:0)

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

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

非常感谢!