ios - 如何使用 GLKView 以较低的分辨率进行绘制?

标签 ios opengl-es-2.0 glkview

我有一个基于“OpenGL 游戏”Xcode 模板的应用程序,用于日常测试/开发我想在模拟器中渲染全屏但分辨率较低(例如 1/2 或 1/4)。有什么有效/精明的方法来实现这一点?

(如果有人想知道,我想这样做是因为我的应用程序在模拟器中运行得非常慢,所以以较小的分辨率渲染会使测试/调试对程序员更友好)

最佳答案

View 的 contentScaleFactor 在 Retina 显示屏上默认为 2.0。如果您减小比例因子,GLKView 会自动使用较小的帧缓冲区并将其内容缩放到屏幕大小以进行显示。

比例因子 1.0 是一半大小(或与非 Retina 屏幕相同的像素数)。 0.5 将是四分之一大小——任何显示器上的大而粗的像素。 1.0 和 2.0 之间的非整数比例因子也有效,并且可能是在 Retina 显示屏上的质量和性能之间进行折衷的好方法。


更新:刚刚投票提醒我这个答案。我很惊讶我最初不会说这个,但我现在不妨添加它......

iOS 模拟器使用软件渲染器运行 OpenGL ES(即在主机 Mac 的 CPU 上,而不是在其 GPU 上)。这就是为什么它很慢。性能特征和渲染结果可能因渲染器而异,因此永远不要相信模拟器的任何与 OpenGL/GPU 相关的东西(可能非常宽泛的笔画除外)。

关于ios - 如何使用 GLKView 以较低的分辨率进行绘制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22268009/

相关文章:

ios - 如何根据变量更改 SWIFT 中的图像,单击使用 IF 语句的按钮

ios - Xcode 中的 iOS 编程是否允许执行二进制文件?

android - 从 NDK 中获取 SurfaceTexture 的 GL 上下文

ios - 当应用程序在没有 Xcode 的情况下运行时,IB 中的 GLKView 会导致崩溃

ios - GLKViewController 和 GLKView - 第二次创建时不呈现任何内容

ios - 将 alertview Yes 按钮设置为粗体,将 No 按钮设置为正常

c# - Xamarin.Forms:使用披露按钮时删除缩进

android - 将 FOV 角度转换为透视投影参数

java - 法线发生了变化,但光照仍然很奇怪?