OpenGL-ES字体呈现(在iOS上)…合理性检查

我正在为iOS编写游戏。 它有一个游戏地图,我用OpenGL来绘制它,因为其他选项太慢了。 我在地图上有单位,用字母表示,一个拉矮人堡垒 。 但是,在OpenGL中渲染文本。

我目前正在使用一个性能调整的Texture2D突变体,这个突变体已经足够原型了,但是它有各种各样的问题,而且对我来说也不是很好。

看来,这样做的尝试和真正的方法是生成一个“目录”的图像文件,所有的字母呈现在一个字体,然后映射到纹理当你想要渲染它们(参见这里 )。 不过,我在地图上放大缩小了很多。 加上视网膜显示加上iPad将需要多个分辨率。 丑陋。

思考一定有更好的办法,我检查了FTGLES ,它可以在iOS / OpenGLES上dynamic呈现TTF / OTF字体。 这不是即插即用的。 我已经摔了两天,甚至接近工作,但我认为我已经有了黄金的道路。 所以…我疯了吗? 我为自己创造更多的工作吗?

是的,这是疯狂的,为自己创造更多的工作。 对于我的具体情况,Texture2D几乎囊括了我所需要的所有秘密。 我决定接受Texture2D的所有权,学习它,并把它做成我自己的。 通过渲染更大的字体(50分)然后缩小,我在OpenGL中获得了非常好的效果:

替代文字

请注意,我已经通过为每个字母创build一个Texture2D对象进行优化,然后在需要时查找这些对象。 我可以进一步优化收集所有的纹理绘制,并为每种颜色进行一次OpenGL绘制调用。

这是我使用的一个很好的纹理映射教程 。 显然,这使用了OpenGL ES中不能完成的显示列表和内容,但是转换不会太困难。 你也可以在这里看一些不同的技术。 一种技巧是用脸部绘制每个angular色。