gpt4 book ai didi

Android OpenGL ES 2.0 文本渲染

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:18:07 25 4
gpt4 key购买 nike

网络上似乎明显缺乏对如何在 OpenGL ES 2.0 中显示文本的支持。 JVitela 的回答:Draw text in OpenGL ES说使用 Canvas,并在其上绘制文本以生成位图,然后使用 GLUtils 渲染文本位图,但答案仅显示直接绘制文本的部分,而不显示围绕它的其他内容。

我也一直在尝试在 http://www.learnopengles.com 上课,在本例中是处理基本纹理的第 4 课。

JVitela 的方法是如何传递给顶点或 fragment 着色器的?关于背景的部分是否必要,或者将背景留在外面只会导致 GL Surface 其余部分的文本?他使用的 textures 变量到底是什么?我认为这是一个纹理数据句柄(将他的 bind() 与 learnopengles 的那个进行比较)但为什么是数组?它是否与其他纹理共享?

我有一个程序,上面已经使用 OpenGL ES 2.0 显示了一堆东西,并且需要在上面打印一些基本文本(一些是静态的,一些每隔 1 到 5 Hz 更新一次)。我的理解是纹理映射位图字形非常昂贵。

是否有任何好的教程可以满足我的需要?有任何人的建议吗?

最佳答案

How is JVitela's method passed to a vertex or fragment shader?

它像任何其他纹理一样传递:

  1. 创建纹理
  2. 设置过滤和换行
  3. 通过GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, bitmap, 0);上传数据

Is the section about the background necessary, or will leaving the background out result in just the text over the rest of the GL Surface?

不需要(只有背景),不写会写黑色像素(因为代码用黑色删除之前的位图像素。如果你只想画文字,你需要启用混合或使用知道文本颜色的特殊着色器。

What exactly is the textures variable he used?

它是一个int[1],参见API docs on GL10 .

I think it's a texture data handle (comparing his bind() to at that of learnopengles) but why an array? is it shared with other textures?

这样,可以使用 glGenTextures 创建多个纹理句柄。

关于Android OpenGL ES 2.0 文本渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10526260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com