Android OpenGL ES 2.0文本渲染

Android OpenGL ES 2.0文本渲染,android,opengl-es-2.0,textures,android-canvas,Android,Opengl Es 2.0,Textures,Android Canvas,对于如何在OpenGL ES 2.0中显示文本,web上似乎明显缺乏支持。JVitela在的回答是:使用画布,在画布上绘制文本以生成位图,然后使用GLUtils渲染文本位图,但答案仅直接显示有关绘制文本的部分,而不是围绕文本的其他内容 我也一直在尝试结束第四课的课程,在这个例子中,第四课是关于基本纹理的 JVitela的方法是如何传递给顶点或片段着色器的?关于背景的部分是必要的,还是忽略背景只会导致GL曲面其余部分上的文本?他使用的纹理变量到底是什么?我认为这是一个纹理数据句柄(将他的bind(

对于如何在OpenGL ES 2.0中显示文本,web上似乎明显缺乏支持。JVitela在的回答是:使用画布,在画布上绘制文本以生成位图,然后使用GLUtils渲染文本位图,但答案仅直接显示有关绘制文本的部分,而不是围绕文本的其他内容

我也一直在尝试结束第四课的课程,在这个例子中,第四课是关于基本纹理的

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

我有一个程序,上面已经用OpenGL ES 2.0显示了一堆东西,需要在上面打印一些基本的文本(一些是静态的,一些是每1到5赫兹更新一次)。我的理解是纹理贴图位图图示符相当昂贵

有什么好的教程可以做我需要的吗?任何人有什么建议吗

JVitela的方法是如何传递给顶点或片段着色器的

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

  • 创建纹理
  • 设置过滤和包装
  • 通过GLUtils.texImage2D(GLES20.GL_纹理_2D,0,位图,0)上传数据
  • 关于背景的部分是必要的,还是忽略背景只会导致GL曲面其余部分上的文本


    这是不必要的(只会有一个背景),不使用它将写入黑色像素(因为代码会在使用黑色之前擦除位图像素)。如果您只想绘制文本,则需要启用混合或使用了解文本颜色的特殊着色器

    他使用的纹理变量到底是什么

    它是一个
    int[1]
    ,请参阅

    我认为这是一个纹理数据句柄(将他的bind()与learnopengles的bind()进行比较),但为什么是一个数组?它与其他纹理共享吗


    通过这种方式,可以使用
    glGenTextures

    创建多个纹理句柄,“省略它将写入黑色像素”,这意味着它将覆盖屏幕上的所有其他内容?或者将在文本周围放置一个黑色框?不确定此处的含义。“屏幕上的所有其他内容”-纹理应用于四边形,因此它覆盖四边形后面的所有内容(前提是深度测试成功,并且没有混合)。没有“围绕文本”的概念-有一张画布被画过。好的,我可以让它在背景图像上画文本,但它会将纹理渲染到我所有的可见对象上。我一定是在错误的位置设置了纹理。你知道有一个很好的初学者教程可以将不同的纹理应用到不同的表面吗?不是针对这个特殊问题。你需要一个
    实体
    类或类似的东西,可以以某种方式分配纹理(一个
    纹理
    对象或直接使用OpenGL句柄)。然后,当绘制一个特定的
    实体
    实例时,在绘制之前先绑定给定的纹理。之后,完全禁用纹理,或通过
    glBindTexture解除绑定纹理(,0)
    。有关详细信息,请参阅。