gpt4 book ai didi

iphone - OpenGL ES/iPhone 的性能和背景图像

转载 作者:行者123 更新时间:2023-12-03 18:37:52 26 4
gpt4 key购买 nike

我正在使用 OpenGL ES 为 iPhone 开发 2D 游戏,我想使用 320x480 位图图像作为持久背景。

我的第一个想法是创建一个 320x480 四边形,然后将代表背景的纹理映射到其上。所以...我创建了一个 512x512 的纹理,上面有一个 320x480 的图像。然后我将其映射到 320x480 四边形。

我每帧都绘制这个背景,然后在其上绘制动画 Sprite 。除了所有这些对象(背景+ Sprite )的绘制太慢之外,这工作得很好。

我做了一些测试,发现我的速度减慢是在像素管道中。毫不奇怪,大背景图像是罪魁祸首。为了证明这一点,我删除了背景绘制,其他所有内容都渲染得非常快。

我正在寻求有关如何保留我的背景并提高绩效的建议。

这里有更多信息:

1) 我目前正在模拟器上进行测试(仍在等待 Apple 的许可证)

2) 背景是压缩至 128k 的 PVR 纹理

3)我曾希望有一种方法可以将此背景缓存到颜色缓冲区中,但没有任何运气。这可能是由于我对 OpenGL ES 缺乏经验,或者这可能是一个行不通的愚蠢想法:)

4)我意识到整个背景并不总是需要刷新,只需刷新被移动 Sprite 绘制的部分即可。我开始研究刷新(必要时)背景部分的技术,无论是作为单独的纹理还是使用剪刀盒,但这似乎不太优雅。

任何提示/建议将不胜感激......

谢谢。

最佳答案

  1. 不要在模拟器上进行性能测试。永远!
    与真实硬件的差异是巨大的。在两个方向上。
  2. 如果每帧都绘制背景:
    不要清除帧缓冲区。无论如何,背景都会 overdraw 整个内容。
  3. 你真的需要背景纹理吗?
    通过顶点颜色使用颜色渐变怎么样?
  4. 尝试对纹理使用 2 位模式。
  5. 关闭背景不需要的所有渲染步骤。
    例如:照明、混合、深度测试……

如果您可以发布一些绘图代码,那么对您的帮助就会容易得多。

关于iphone - OpenGL ES/iPhone 的性能和背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/421969/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com