【问题标题】:Hidden Difference Between Unity 3D Quality Settings?Unity 3D 质量设置之间的隐藏差异?
【发布时间】:2015-05-03 05:54:14
【问题描述】:

我正在为 iOS 优化我的游戏,但我在 Unity3D 的质量设置中遇到了一个非常奇怪的问题,让我完全卡住了!

我通过以下方式在游戏中设置了 4 种质量设置:

Edit -> Project Settings -> Quality

四种设置是:简单、良好、美丽、神奇

简而言之,无论我在质量设置面板中设置的选项如何,Simple 的性能总是比 Good 好。

例如,如果我将 Simple 和 Good 设置为所有渲染选项的设置相同,将所有内容都设置为最小(阴影关闭、无抗锯齿、1/8 纹理等),然后在 iPad 上测试游戏,从不同的默认质量选项:

Simple - ~26FPS
Good - ~6FPS 

如果我将 Simple 更改为使用 1/4 Textures,并将 Good 保留为 1/8 Textures,它的性能仍然几乎相同:

Simple - ~24FPS
Good - ~6FPS 

我可以清楚地看到纹理在 1/4 的简单模式下更好/更详细,但运行速度比使用 1/8 大小纹理的良好模式快近 20FPS。

我可以从附加的 Unity iOS 分析器中看到,在良好模式下运行时,CPU 会承受持续的“开销”负载,这在简单模式下不存在(具有相同的质量设置)。因此,当我从“简单”变为“良好”时,某些事情显然发生了变化,但我似乎无法从质量设置菜单中更改任何内容。

通过阅读unity manual page,我得到的印象是不同的质量设置只是简单的占位符,因为您可以添加/删除选项。但从我的实验来看,当我从简单 Vs 好(或其他)选项开始时,似乎还有其他一些变化。

我尝试过以 Simple/Good 作为默认启动游戏,并手动切换代码(通过 QualitySettings.SetQualityLevel 使用 C#)并获得相同的性能。

我觉得我错过了一些关键,但我似乎无法弄清楚这一点。

【问题讨论】:

  • 这是一个很好的问题!不过,您可能在 UnityAnswers 上运气更好。该站点专门用于 Unity,因此您可能会在那里找到更多知识渊博的人。
  • 感谢您的建议 - 我实际上已经在 Unity Answers 上发布了这个,但没有得到任何回复!希望 StackOverflow 的人能帮我破解它!

标签: c# ios unity3d rendering


【解决方案1】:

当您使用质量级别中存在的功能并需要一些额外的计算时,质量级别可能会有所不同。但是,当您不使用该功能时,质量级别之间没有区别。 如果你想提高你的 FPS 有一些提示

  1. 制作纹理贴图以减少绘制调用
  2. 改进更新函数中的计算和更新函数使用的缓存转换。
  3. 不要在每一帧中搜索组件,在某些情况下可以使用单例模式
  4. 不要破坏每一帧中的对象。进行对象池化。
  5. 改善粒子排放并尽可能减少
  6. 改进着色器。如果您使用移动设备,请使用移动着色器。例如将漫反射着色器更改为移动/漫反射。

这里有一些有用的链接 Object pooling video tutorial, Singleton pattern Unity3d c#

【讨论】:

  • 感谢您的建议 - 我会确保在优化游戏时考虑所有这些。但是,恐怕这并不能回答我最初的问题,即质量设置之间是否存在一些内部差异。在我的情况下,所有质量设置的所有设置/功能都是相同的 - 但是当我从最低(最快)切换到任何其他质量级别时,我发现性能大幅下降。如果在我更改级别时启用了任何其他功能,这将是有意义的 - 但所有设置都是相同的!
猜你喜欢
  • 2020-05-24
  • 2014-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-05
  • 1970-01-01
相关资源
最近更新 更多