[NDK]从Opengles到Vulkan-进阶篇(2)-离屏渲染

这里离屏渲染当然是使用不在屏幕上进行渲染。

Opengles离屏渲染pbo

这里首先需要使用egl环境创建一个不绑定屏幕的EGLSurface,然后就是通过这个Surface做渲染载体了。

        const EGLint pbuf_attribs[] = {
                EGL_WIDTH, width,
                EGL_HEIGHT, height,
                EGL_NONE};
        //创建离屏渲染Surface
        mSurface = eglCreatePbufferSurface(mDisplay, config, pbuf_attribs);

这里使用opengl的pbo,用于包含需要绘制的内容,再将纹理传给滤镜。
初始化fbo

        glGenFramebuffers(1, &fboId);
        glBindFramebuffer(GL_FRAMEBUFFER, fboId);
        glBindTexture(GL_TEXTURE_2D, fboTextureId);
        glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,GL_TEXTURE_2D, fboTextureId, 0);
        glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, options->getScaleWidth(), options->getScaleHeight(), 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
        if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) {
            E
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值