Unity | 优化(一):V Sync Count

1. 点击Unity->Edit->Project Setting->Quality,打开QualitySetting面板,有一个V Sync Count参数,该参数表示垂直同步。它有三个值可以选择:

  • Don't Sync:不设置垂直同步,需要通过代码Application.targetFrameRate来指定帧率
  • Every V Blank:帧率为60,Application.targetFrameRate无效
  • Every Second V Blank:帧率为30,Application.targetFrameRate无效

2. Application.targetFrameRate:设置该值不能保证帧速率为目标值,可能由于平台的特殊性而出现波动,或者由于计算机速度太慢,游戏可能无法达到帧速率。它有三个特殊值:

  • Application.targetFrameRate=-1:使游戏尽可能快地渲染
  • Application.targetFrameRate=30:一般在手机游戏中,设置帧率为30
  • Application.targetFrameRate=60:网页播放器游戏的渲染速度一般为50-60帧/秒

3.打开垂直同步能防止游戏画面高速移动时画面产生撕裂现象。

我们平时运行操作系统一般显示器刷新率是在85左右,显卡会按照每85的频率时间来发送一个垂直同步信号,如果我们选择“等待垂直同步信号”(也就是我们平时所说的“垂直同步打开”),那么在游戏中,或许强劲的显卡迅速的绘制完一屏的图像,但是没有垂直同步信号的到达,显卡无法绘制下一屏,只有等85单位的信号到达,才可以绘制;而如果我们选择“不等待垂直同步信号”(也就是我们平时所说“关闭垂直同步”),那么游戏绘制完一屏画面,显卡和显示器无需等待垂直同步信号,就可以开始下一屏图像的绘制,自然可以完全发挥显卡的实力。

正是因为垂直同步的存在,才能使得游戏刷新率和显示器刷新率同步,使得画面平滑,使得画面稳定。取消了垂直同步信号,固然可以换来更快的速度,但是在图像的连续性上,性能势必打折扣。

通常渲染要慢的多,开了垂直同步,计算机就会等待上一张图片渲染完成后才会发出开始下一张渲染的命令;不开垂直同步,那么计算机就急不可待的想把算好的结果渲染在屏幕上,这样就容易出现上一张还没有渲染完,又来新的图来覆盖,时间差大到一定程度就会出现屏幕撕裂。

4.最近做的项目是基于2D的一个工具类项目,所以设置为30帧即可。

 

你可能感兴趣的:(Unity,Unity,垂直同步,优化)