如何从FBO获得更清晰的图片?

时间:2015-08-07 09:19:49

标签: android opengl-es-2.0 framebuffer fbo

我是android和opengl es的新手,所以如果这是一个愚蠢的问题,请原谅我。 首先,我创建了一个GLSurfaceView并将其宽度设置为300,高度设置为500.然后我创建一个FBO并将其附加到纹理。最后,我将纹理绘制到屏幕上。 所以,这是我的问题:如果我想获得更清晰的图片,比如1000 * 800。怎么做?

1 个答案:

答案 0 :(得分:0)

  

我创建了一个FBO并将其附加到纹理

  1. FBO是渲染目标,这意味着您无法将其附加到纹理。但是,您可以将具有纹理的对象绘制到FBO
  2.   

    我希望得到更清晰的图片,例如1000 * 800

    1. 因此,无论原始图片大小如何,清晰图片的最大尺寸取决于您设置的FBO尺寸
    2. glRenderbufferStorage(GL_RENDERBUFFER,GL_RGBA8,宽度,高度); 使用RTT(渲染到纹理)

      您可以使用RTT(渲染到纹理)

      从FBO导出纹理

      RTT是一种将渲染目标用作纹理的方法。

      例如

      glGenTextures(1, &texture[texture_id].texture_id);
      glBindTexture(GL_TEXTURE_2D,texture[texture_id].texture_id);
      glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, texture_width, texture_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
      glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texture[texture_id].texture_id, 0);