1

我们的团队开发了一个 OpenGL 应用程序,可以在屏幕上绘制不同的多边形。此外,我们希望创建大约 1000 个不同的字符串以在屏幕上打印。如果我们使用 Texture2D 类执行此操作,则 FPS 会下降到 3 以下。

我已经测试过 Bitmap 字体,它并没有提高性能。

在 OpenGL iOS 中,在不损失性能和不损失质量的情况下绘制大量文本的最佳方式是什么(文本应该是可扩展的)?

4

1 回答 1

0

分配 1000 个纹理会占用大量内存,并且会降低您的应用程序的速度,尤其是当它们具有足够高的分辨率以读取文本时。您应该根据需要生成这些纹理,并在它们不再显示时释放它们。确保不是每帧都生成和释放纹理,而只是在需要时。

如果您在同一个场景中绘制所有 1000 个字符串,则应该将尽可能多的字符串组合成类似的纹理。这将允许您利用 Cocos2D 的 TrueType 渲染系统来保持文本的高质量。另一方面,如果这不是一个选项,并且所有 1000 个字符串都需要彼此区分,请考虑构建一个字体渲染系统,将每个字符渲染为一个字形图像。这会将用于表示所有标准英文字符和标点符号的纹理数量从 1000 个减少到大约 100 个。我必须为在 OpenGL 环境中具有大量动态文本的视频游戏做类似的事情,并从中获得良好的性能。但是,除非绝对必要,否则我不推荐它,因为它将您的文本限制为仅定义的字形,并且您必须自己编程格式。

于 2013-08-14T15:19:58.893 回答