Huy*_*ran 12 c++ iphone android bitmap-fonts opengl-es-2.0
我正在使用PowerVR OpenGL ES 2 SDK在Windows上使用C++开发我的游戏然后我可以将它移植到android或iphone.
一切看起来都不错,但我现在仍然坚持使用文字渲染.我找不到任何关于使用C++在OpenGL ES 2.0中渲染文本(使用TTF或Bitmap字体)的详细教程.我发现很多话题都是关于使用java或objective-c(带有textview,surfaceview或者某些等等)在android或iphone上渲染文本的话题,但我不认为这就是我需要的东西.我需要一个"跨平台解决方案".(或者在这一点上我可能错了?)
经过一番研究,我脑子里有了解决方案:
加载和绑定位图字体纹理 - > 解析文本并生成和绑定顶点数组,使用uv数组映射纹理,... - >将其渲染到屏幕
我还没有测试但是我认为在使用我的解决方案时这是一个问题:当我想要更改文本时(例如:我正在制作用户评分或屏幕上的计时器)我必须重新绑定顶点数组和uv数组,这不是一个好主意,对吗?
有没有更好的方法/正确的方法在OpenGL ES 2屏幕上绘制位图字体?
文本渲染是 3D 库世界中大多数新人迟早需要面对的主题之一。
互联网上有很多关于文本渲染的教程,很多书籍都在讨论它。我的建议是环顾四周并尝试了解它们是如何工作的。
TTF 字体不是一个可行的解决方案,因为在实时计算场景(如计算机游戏)中,TTF 基于几何的技术消耗太多资源。
一种非常常见的解决方案(例如我在 PATRIA 3D 引擎中使用的解决方案)是使用包含不同字符字形的纹理图集,然后您的应用程序逻辑需要处理文本-->字形位置关系以进行纹理化将组成最终“屏幕文本”的四边形。
文本渲染不是一个简单的主题,因为它涉及字距调整/间距/不同文本大小等主题。
尝试点击此链接以最好地理解该主题(如果我没记错的话,该 wiki 的作者是该社区的活跃成员)。
http://en.wikibooks.org/wiki/OpenGL_Programming/Modern_OpenGL_Tutorial_Text_Rendering_01