首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将较低分辨率的场景拉伸到全屏原生分辨率?

如何将较低分辨率的场景拉伸到全屏原生分辨率?
EN

Stack Overflow用户
提问于 2011-07-11 08:16:31
回答 2查看 1.4K关注 0票数 2

我只在DirectX应用程序中看到过这种功能:当你调整窗口大小时,渲染也会相应地拉伸,看起来它实际上是一个拉伸的纹理。

如何在OpenGL中高效地完成这项工作?这样做的目的是创建一个原生分辨率的全屏应用程序,因为在LCD屏幕上选择较低的分辨率相当困难,并允许我以较低的分辨率渲染以获得较高的FPS。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-11 08:24:15

您需要渲染到纹理或渲染器缓冲区,然后对实际的默认帧缓冲区执行glBlitFramebuffer。然后像往常一样交换缓冲区。

票数 2
EN

Stack Overflow用户

发布于 2011-07-11 08:26:36

您可以调用glViewport()来告诉OpenGL窗口的哪个部分(以像素为单位)最终将由OpenGL呈现。您可以使用glFrustum()、glOrtho()或glOrtho2D()等方法来设置要在其中绘制的“世界”的参数。

如果您处理一个事件来通知您何时调整窗口大小,则可以再次调用glViewport()来相应地更新视口的大小。

因此,如果你的世界是方形的(例如),而你的视口是矩形的,那么它将具有你所引用的效果(它将相应地拉伸,就像它实际上是一个纹理)。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6644625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档