0

我到处搜索,但找不到太多将字符串渲染到纹理然后在屏幕上的四边形上显示该纹理的内容。有人可以提供该过程的概要或提供描述如何的良好资源吗?将字符串渲染到纹理甚至是在 Android OpenGL ES 应用程序中显示文本的最佳方法吗?

编辑:好的,因此 LabelMaker 干扰了 alpha 混合,纹理(从具有透明背景的 PNG 创建)现在具有纯黑色背景,而不是透明背景。如果我注释掉所有与 LabelMaker 相关的代码,它就可以正常工作。

更新:没关系。我查看了代码,发现 LabelMaker 在绘制标签后禁用了混合。

4

2 回答 2

1

我想就是你要找的。

于 2010-04-08T16:02:07.507 回答
0

如果您不想使用 GL 扩展,则需要将字体创建为位图,然后创建一个类将该字符串转换为可以绘制的四边形。

我在我的游戏中将这种方法与 2 种字体一起使用。我有一个类,它采用所有字母均匀分布的宽纹理,以及一个与图像匹配的字符串,然后使用字母查找来找出它应该在位图中走多远。

您的另一个选择是使用 android 将文本渲染到屏幕外位图,然后将文本绑定为纹理。这将让您使用 androids 内置的字体处理和渲染来创建基于纹理的字体。

第二种方法我还没有使用,但我已经将谷歌地图渲染到屏幕外画布,然后将位图绑定为 GL 纹理,因此对文本执行此操作应该更简单。

如果您打算在 gl 循环中修改字符串数据,您也需要真正担心 StringBuilder,因为它会导致 GC 和性能问题。我对所有字符串进行了硬编码,因此它不会分配,并且我所有的快速数字都是通过第二个绘图函数完成的,该函数专门用于在不使用字符串生成器的情况下绘制变化的数字。

于 2010-12-06T05:49:28.537 回答