gpt4 book ai didi

ios - OpenGL ES 2.0 以多种分辨率缩放

转载 作者:行者123 更新时间:2023-11-29 03:21:55 25 4
gpt4 key购买 nike

我的 iOS 应用程序在 opengles View 中绘制 2D 曲线。该场景的渲染成本非常昂贵(最多可能需要 1-2 秒),这意味着,据我所知,我无法更改比例、重绘和重新渲染以实现比例的增量变化(由于捏合)飞涨)。我目前直接在渲染到屏幕的缓冲区上绘制。

我认为实现缩放的一种方法是以给定分辨率渲染纹理,然后使用该纹理的一部分渲染四边形(可能以不同的比例并进行翻译)。我的猜测是,它将使我当前使用的内存增加一倍(如果我当然将纹理保持与屏幕相同的分辨率)。有人可以证实吗?是否有另一种方法可以在不重绘的情况下进行缩放,同时不会使图形内存使用量增加一倍?

现在,如果我想保持良好的质量,我必须以不同的分辨率重新渲染。我最初的想法是“手动”创建一个 mipmap,例如2 个级别(1 个纹理用于​​ 100-150% 缩放,另一个纹理用于​​ 150-200% 缩放)。这次,我将有 1 个缓冲区 + 2 个纹理。我当然可以在平移时重新渲染,但我认为用户体验不会很好。关于如何从用户体验和/或内存角度改进这一点有什么想法吗?

最佳答案

由于您已经需要那么长时间来绘制场景,因此我建议您创建平铺。您可以在加载时以不同的分辨率绘制场景并将输出保存到一些图像(将图像文件保存到某个临时目录中)。通过这种方法,您应该拥有最小的内存消耗,并且用户体验应该很棒。

如果您这样做,您还应该考虑是否想使用 openGL 来呈现场景,因为您有一些非常好的方法可以在 ImageView 、 ScrollView 上呈现大图像。通过这种方式,您实际上可以跳过所有 GL - UIView 绑定(bind)和呈现。您可以将所有 GL 工作移至某个单独的线程,这意味着如果场景需要更改,您可以在后台执行此操作,从而允许用户不间断地处理当前场景。此外,如果您希望用户在场景之间“交换”,您可以保存它们并重复使用它们,而不会影响任何性能。

关于ios - OpenGL ES 2.0 以多种分辨率缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20973323/

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