首页 > 解决方案 > 如何使用 glTexImage2D 填充 RGB 纹理并显示它?

问题描述

我有一个ByteBuffer来自视频的 RGB 帧,所以它有 size 1280x720x3

我想使用 OpenGL 渲染它。这是我的片段着色器:

public static final String videoFragment =
    "#version 320 es\n"+
    "precision mediump float;" +
    "uniform float alpha;\n" +
    "uniform sampler2D sampler;\n"+
    "\n" +
    "in vec2 TexCoord;\n" +
    "out vec4 FragColor;\n" +
    "void main()\n" +
    "{\n" +
    "    vec4 rgba;\n" +
    "    rgba.rgb = texture(sampler, TexCoord).rgb;\n" +
    "    rgba.a = 1.0f;\n" +
    "    //FragColor = vec4(1.0f,0,0,1.0f);\n" +
    "    FragColor = rgba;\n" +
    "}\n";

我应该如何使用它来填充它glTexImage2D?我想将我的 RGB 数据放入其中。我尝试了许多GLES20.GL_RGB和其他的组合,但它们不起作用,或者我只是得到一个黑白图像:

GLES20.glTexImage2D(
    GLES20.GL_TEXTURE_2D,
    0,
    GLES20.?,
    1280,
    720,
    0,
    GLES20.?,
    GLES20.?,
    buffer); 

标签: javaandroidopengl-es

解决方案


推荐阅读