有没有办法直接在 iPhone 上渲染像素?

Posted

技术标签:

【中文标题】有没有办法直接在 iPhone 上渲染像素?【英文标题】:Is there a way to render pixels directly on iPhone? 【发布时间】:2011-11-03 13:04:08 【问题描述】:

我想移植一个我制作的游戏,它可以将屏幕本身渲染为 50 fps(不使用 opengl)。

将它移植到 iPhone 的最佳方式是什么?

我正在阅读有关帧缓冲区对象的信息。这是将像素缓冲区高速渲染到屏幕的好方法吗?

【问题讨论】:

【参考方案1】:

在屏幕上获取像素的最快方法是通过 OpenGL。

需要有关您的游戏当前如何渲染到屏幕的更多信息,但我看不出 FBO 将如何提供帮助,因为它们通常用于获取渲染缓冲区的副本,即用于创建屏幕录制或合成即时自定义纹理。

【讨论】:

我想在一个纹理上渲染整个游戏,然后用 opengl 渲染一个带有纹理的大四边形。这可行吗? 只使用opengl的像素基元太慢了。我真的需要一个传统的“像素缓冲区”。 如果您的静态精灵不会随时间发生太大变化,将它们存储在您在后台缓冲区中渲染/合成的纹理中应该非常快。如果您的精灵是动态的并且随着时间的推移发生很大变化,您也许可以通过使用由 CVOpenGLESTextureCache 支持的纹理来有效地模拟传统的像素缓冲区。【参考方案2】:

如果我需要创建一个必须直接访问像素并且不能直接访问硬件的应用程序,我会使用 SDL,因为它只需要您创建一个表面,然后您可以从那里直接操作像素。据我所知,您可以在 Iphone 上使用 SDL,甚至可以使用 opengl 加速它

【讨论】:

根据这个问题,SDL 在 iPhone 上不太可行:***.com/questions/597459/how-mature-is-sdl-for-iphone SDL for iPhone 只是包装了一个 OpenGLES 上下文。除非您已经拥有一堆 SDL 代码,否则您不妨使用原生 API。它会为您省去很多麻烦。

以上是关于有没有办法直接在 iPhone 上渲染像素?的主要内容,如果未能解决你的问题,请参考以下文章

iPhone X 上 SceneKit + SpriteKit 叠加的像素格式错误

iPhone/Sqlite - 如何仅从服务器获取更改的数据?

有没有办法直接从 iPhone 应用程序更新复杂功能?

iPhone iOS 如何以不同的分辨率或比例渲染屏幕截图?

WebGL - 从渲染缓冲区读取像素数据

iOS关于iPhone6和iPhone6 Plus的屏幕适配问题