【问题标题】:Android opengl drawing textAndroid opengl 绘制文本
【发布时间】:2011-01-12 17:40:57
【问题描述】:

我计划用 opengl 绘制文本,但不知道如何让它绘制/构建实际的字符串。如果我想绘制“Hello World”,我可以为每个字母创建一个纹理并将它们全部绘制,但我知道必须有一种更简单的方法来一次“拉出”正确的字符集,然后只绘制一次.我想我可以得到所有单独的纹理,将它们添加到顶点数组中,然后只调用一次绘制来绘制顶点数组,但这似乎效率低下。任何涵盖此特定部分的教程?

【问题讨论】:

  • 你想要一个 2D 字符串还是应该是 3D 字母?
  • 只是 2D。在我掌握在 2D 中使用 opengl 的窍门之前,我不打算很快开始 3D。

标签: java android text opengl-es


【解决方案1】:

假设您只希望 2D 字母出现在 3D 空间中的某个点,执行此操作的正常方法是您描述的方法。好吧,实际上我会为整个字符串创建一个位图,然后将位图绘制到场景中。它并不是真的低效——实际上它非常高效,因为您可以缓存文本的位图,并且只需计算一次,而不是每次绘制场景时计算。看似简单的代码很多,但OpenGL经常是这样的。

【讨论】:

【解决方案2】:

我为我的位图字体生成器 (CBFG) 编写了一个 Android 加载器和渲染器,可以满足您的要求。

用于加载和显示字体的 Android 源位于 http://www.codehead.co.uk/cbfg/TexFont.java

创建您自己的字体文件的工具位于http://www.codehead.co.uk/cbfg

基本上,所有字体字形都排列在一个位图上,并且通过渲染一系列相同的四边形来绘制字母,每次更改 UV 坐标以显示所需的字母。

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多