2010-09-11 91 views
4

我正在为iOS编写游戏。它有一个游戏地图,我使用OpenGL来绘制它,因为其他选项太慢了。我在地图上有单位,用字母表示,一个la Dwarf Fortress。但是,在OpenGL中渲染文本。OpenGL-ES字体渲染(在iOS上)...完美检查

我目前正在使用Texture2D的一个性能调整的突变体,它足够原型,但它有各种问题,并且不会为我产生漂亮的结果。

看来,这样做的尝试和真正的方法是生成一个“目录”图像文件,其中所有字母呈现在字体中,然后将这些图像映射到纹理当您想要呈现它们时(cf 。here)。但是,我在地图上放大和缩小了很多。再加上Retina Display plus iPad将需要多种分辨率。丑陋。

想到那里肯定有更好的办法,我检出了FTGLES,它可以在iOS/OpenGLES上动态呈现TTF/OTF字体。这不是即插即用的。我已经摔跤了两天,甚至接近工作,但我认为我现在已经走上了金色的道路。所以...我疯了吗?我创造的方式比我应该为自己做更多的工作吗?

回答

3

是的,这太疯狂了,为自己创造了更多的工作。对于我的具体情况,Texture2D几乎囊括了我需要的所有秘密。我决定取得Texture2D的所有权,学习它,并将其作为我自己的。通过在一个更大的字体渲染(50分),然后按比例缩小,我得到真正的好成绩在OpenGL:

alt text

请注意,我已经通过创建每个字母一个Texture2D对象,然后看这些了优化当我需要他们时。我可以通过收集我所有的纹理绘制和每种颜色的OpenGL绘制调用来进一步优化。

1

这是我用过的一个很好的纹理贴图tutorial。显然,这使用了OpenGL ES中无法做到的显示列表和内容,但是转换不应该太困难。您还可以查看一些不同的技术here。一种技巧是用脸部绘制每个角色。