首页 > 解决方案 > 是否可以从原始大小的 OpenGL 缓冲区获取像素?

问题描述

我有一个使用 OpenGL 的 4K 项目。所以我所有的图像都是基于 4K 的,它可以在我的全屏 1080p 计算机上渲染。OpenGL 只是很好地调整大小而没有问题。但我想使用 glReadPixels() 之类的东西从 4K 源读取缓冲区。到目前为止,我无法弄清楚这是否可能。不确定 GPU 帧缓冲区在调整大小时会发生什么,我猜它只是将缓冲区大小调整为 1080p,从而无法获取原始的 4k 内容?如果是这种情况,我会做其他事情,但在我冒险编写一些额外的代码之前必须先问清楚。;-) 谢谢。

标签: c++opengl

解决方案


使用帧缓冲区对象以您喜欢的分辨率渲染场景并从那里读回数据。如果您仍然想要窗口中的“实时预览”,只需将 FBO 内容blit 到您的默认帧缓冲区(并在该步骤中缩小它们)。


推荐阅读