Unity 对GPU的基础性能优化

Posted 日于

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity 对GPU的基础性能优化相关的知识,希望对你有一定的参考价值。

遇到的问题

因为项目中采用的主机为工控机,不带有独立显卡,CPU采用的是i7-8750H,集显型号620
在运行中GPU长期处于高占用、高功耗运行。

分析工具

  1. Unity自带的Profiler(虽然有很大误差,但只是作为分析帧数和卡顿脚本的话是够用的)。
  2. windows的任务管理器,在性能中可以看到大致的占用率。

解决方法

1.不在代码层面的优化方法

  1. 上图中右侧为对系统启动环境的设置,根据自身系统的情况可以多做几次适合的调整(分辨率均为16:9的屏幕可选分辨率),这样的操作是在发布系统启动的分辨率设置界面中设置。
    如图中的图形质量等级,Unity编辑器是有六个等级可以选择的。设置方法为 Edit-Project Setting-Quality(质量) 中
    在这里可以设置不同的差异等级。

2.部分在代码层面进行优化

  1. 对于第一点的优化方式如果需要取消分辨率设置界面,可以通过代码进行调整。
Screen.SetResolution(1366, 768, true);    //设置分辨率大小
QualitySettings.SetQualityLevel(3, true);   //设置图形质量等级
  1. 在关闭垂直同步的图形质量等级下
   Application.targetFrameRate = 30;   //强制帧率

这句代码生效(PS:在没关闭的是无法设置的)
关闭垂直同步的方法:
打开 Edit-Project Setting-Quality(质量)的等级下找到V Sync Count(垂直同步数)就可以修改这个等级的垂直同步数,将垂直同步数改为Don’t Sync即可对帧率进行调整。

特别说明

这篇文章意在帮大家做一些基础的性能优化,没有对代码做出大改动,在Profiler中可以看到突然降帧的脚本函数是什么,锁定问题所在后更改即可
因为笔者所知甚浅,只能做一些基础的工作,对于在底层的优化方式还所知甚少,希望看到的大佬可以私信教导。不胜感激。

参考的大佬文章:

  1. Unity性能优化.
  2. Unity优化之CPU与GPU.
  3. Unity3D降低性能方法.

以上是关于Unity 对GPU的基础性能优化的主要内容,如果未能解决你的问题,请参考以下文章

Unity性能优化-DrawCall

如何用unity3D对游戏运行性能进行优化

Unity中的批处理优化与GPU Instancing

Unity优化

Unity渲染优化中文翻译——GPU的优化策略

Unity中使用GPU Instancing优化SkinnedMesh渲染