代码之家  ›  专栏  ›  技术社区  ›  Jason Rogers

带有自定义字体的文本纹理OpenGL ES

  •  2
  • Jason Rogers  · 技术社区  · 14 年前

    由于在opengles(或Opengl)方面经验不足,我希望有人能帮我解决这个问题。

    两个明显的原因是:

    -模块化(不使用photoshop快速更改文本)

    有谁能给我指点一下教程,或者至少给我一些基本的步骤/功能:

    • 从文本创建纹理

    • 加载自定义字体以显示具有所选自定义字体的文本纹理

    • 说明我是否可以用这个来加载汉字?

    致以最诚挚的问候

    詹森·罗杰斯

    2 回复  |  直到 14 年前
        1
  •  3
  •   Aert    14 年前

    我不知道这是不是最好的方法,我以前也没做过。。。但我会这么做:

    • Paint 描述文本外观的对象。
    • 设置字体所需的参数( Paint.setTypeFace() Paint.setTextSize() )颜色等。
    • 使用测量所需位图的大小 Paint.getTextBounds()
    • Bitmap.createBitmap() ,确保它有alpha分量。
    • new Canvas(bitmap) .
    • 将文本绘制到位图中: Canvas.drawText()
    • Bitmap.createScaledBitmap() 如果你需要的话,我有一个方便的函数(四舍五入到2的幂)。
    • 绑定、设置纹理参数并使用 GLUtils.texImage2D()
    • 使用纹理绘制四边形/精灵;使用测量的文本尺寸适当缩放。

    希望这有点帮助。干杯,阿尔特。

        2
  •  2
  •   cement    14 年前

    在我们的应用程序中,我们决定使用androidxml布局而不是opengles来绘制HUD(按钮、图标、文本)。

    • xml布局和控件的所有特性都是现成的
    • 更容易处理点击和屏幕旋转
    • 不需要创建/调整纹理大小
    • 现成的资源文件夹支持(多语言)

    要做到这一点,你只需要添加 GlSurfaceView