C++ OpenGL:gltranslate VBO时的奇数字体UV移动

C++ OpenGL:gltranslate VBO时的奇数字体UV移动,c++,opengl,C++,Opengl,我正在加载一个带有freetype2的truetype字体,并构建一个VBO来渲染它。它工作得很好,但当我做glTranslate以使文本相对于特定区域(按钮文本)居中时,字符的uv似乎在移动 我一直在调试,顶点和uv缓冲区中的所有值都是正确的。在下面的屏幕截图中,您可以看到未“居中”的文本渲染效果良好,但按钮中的文本显示了一些瑕疵,如uv错误。两个缓冲区(居中的缓冲区和左对齐的缓冲区)都是等效的和正确的,因此当我将文本居中时,一定有其他东西扰乱了渲染 我将发布一个屏幕截图,然后根据需要添加代码

我正在加载一个带有freetype2的truetype字体,并构建一个VBO来渲染它。它工作得很好,但当我做glTranslate以使文本相对于特定区域(按钮文本)居中时,字符的uv似乎在移动

我一直在调试,顶点和uv缓冲区中的所有值都是正确的。在下面的屏幕截图中,您可以看到未“居中”的文本渲染效果良好,但按钮中的文本显示了一些瑕疵,如uv错误。两个缓冲区(居中的缓冲区和左对齐的缓冲区)都是等效的和正确的,因此当我将文本居中时,一定有其他东西扰乱了渲染

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

我希望有人能从这些信息中得到启发,帮我一把,因为我在这里真的迷路了


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

解决了它。问题是,当我使用浮动进行平移时,有时这些值是分数,像素对齐的四边形被缩放

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


无论如何谢谢你

别忘了发布你的着色器代码。你在使用mimaps吗?解决了。谢谢大家!为什么不使用GLTRANSTALEI,也许与正交项目结合使用?