如何从 FBO 获得更清晰的画面?

Posted

技术标签:

【中文标题】如何从 FBO 获得更清晰的画面?【英文标题】:How to get a clearer picture from FBO? 【发布时间】:2015-08-07 09:19:48 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

    FBO 是一个渲染目标,这意味着您不能将它附加到纹理上。但是,您可以将带有纹理的对象绘制到 FBO

我想得到更清晰的图片,比如 1000*800

    因此,无论原始图片尺寸是多少,清晰图片的最大尺寸取决于您设置的FBO尺寸

glRenderbufferStorage(GL_RENDERBUFFER,GL_RGBA8, width, height); 使用 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);

【讨论】:

以上是关于如何从 FBO 获得更清晰的画面?的主要内容,如果未能解决你的问题,请参考以下文章

只需一点小修改,HTC Vive画面会更清晰锐利

在 GLSL 中访问多个 FBO 纹理以创建另一个纹理

如何从 gcov 获得更准确的结果?

如何在iOS上仅在具有清晰颜色的模糊视图底部获得圆角?

如何使用 twain/emgu/open cv 获得良好的清晰度?

vc++如何实现屏幕监控画面自适应?