在Android和OpenGL ES中将字符串渲染到纹理

我到处都是搜索引擎,但找不到很多东西来渲染字符串到纹理,然后在屏幕上的四边形上显示纹理。 有人可以在流程中提供破解或提供描述如何的好资源吗? 即使是在Android OpenGL ES应用程序中显示文本的最佳方法,是否将字符串呈现为纹理?

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

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


我认为这是你正在寻找的。


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

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

您的其他选项是使用android将文本渲染到离屏位图,然后将文本绑定为纹理。 这会让你使用android内置的字体处理和渲染来创建基于纹理的字体。

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

如果你打算修改gl循环中的字符串数据,你也需要非常担心StringBuilder,因为它会导致GC和性能问题。 我硬编码我的所有字符串,所以它不分配,我所有的快速数字都是通过第二个绘制函数完成的,专用于绘制不需要使用字符串生成器的数字。

链接地址: http://www.djcxy.com/p/5809.html

上一篇: Render string to texture in Android and OpenGL ES

下一篇: Rendering OpenGL FBO Texture to GLXPixmap