【问题标题】:Copying data from one texture to another - opengl将数据从一个纹理复制到另一个 - opengl
【发布时间】:2015-03-12 14:27:52
【问题描述】:

我正在SurfaceTexure 上的 android 中渲染我的相机预览。此SurfaceTexture 绑定到目标GL_TEXTURE_EXTERNAL_OES。 我想将这个 SurfaceTexture 对象中的纹理数据复制到绑定到 GL_TEXTURE_2D 的自定义 OpenGL 纹理中。

我的 onFrameAvailable 回调如下:

@Override
public void onFrameAvailable(final SurfaceTexture surfaceTexture) {
    glView.queueEvent(new Runnable() {
        @Override
        public void run() {
            surfaceTexture.updateTexImage();
            //TODO: Copy this texture to the custom texture
        }
    });
}

我已经创建了自定义纹理对象。

谁能帮我复制部分?

【问题讨论】:

    标签: android opengl-es shader render-to-texture


    【解决方案1】:

    通常的方法是将颜色附件中的纹理绑定到 FBO,选择该 FBO 作为活动并使用 glCopyTexImage 从 FBO 复制到目标纹理。

    【讨论】:

    • 你能给我一些OpenGL伪代码吗?
    • 顺便说一句,您是否考虑过两种纹理都绑定到不同目标的问题?
    • 我在stackoverflow.com/questions/29003414 中的答案的评论中添加了一个链接——它显示了 Android 应用程序中的 FBO 设置。有问题的活动是将场景渲染到 FBO,然后实质上将该纹理传送两次(一次到显示器,一次到视频编码器)。我认为您想做类似的事情,将外部纹理全屏渲染到 FBO,然后根据需要使用支持纹理。
    • @omerjerk:每个纹理绑定到哪个目标都没有关系。 FBO 充当适配器。
    猜你喜欢
    • 2016-11-13
    • 2021-08-12
    • 1970-01-01
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    相关资源
    最近更新 更多