Unity3D显示帧率以及设置垂直同步
2018-03-28 09:20
1006 查看
using System.Collections;
using UnityEngine;
public class Test : MonoBehaviour
{
float updateInterval = 0.5f;
private float accum = 0.0f;
private float frames = 0;
private float timeleft;
void Start()
{
timeleft = updateInterval;
}
void Update()
{
timeleft -= Time.deltaTime;
accum += Time.timeScale / Time.deltaTime;
++frames;
if (timeleft <= 0.0)
{
Debug.Log( "" + (accum / frames).ToString("f2"));
timeleft = updateInterval;
accum = 0.0f;
frames = 0;
}
}
}
显示器扫描的过程中有两个重要的概念:HBlank(行消隐)和VBlank(场消隐)。HBlank是指当行扫描到最右端时需要快速返回到下一行的最左端的过程。而VBlank则是指扫描完一帧,准备开始扫描下一帧,扫描线从右下角返回到左上角的过程。这两个过程的时间间隔中,扫描线需要变得blank,以防止看到一条斜线显示在屏幕上。游戏渲染中的VSync(垂直同步)技术就与刷新率和VBlank有关。先说说为什么需要VSync。一般情况下CPU执行游戏逻辑和GPU执行渲染的计算都会快于屏幕的刷新,也就是CPU提交渲染数据和命令到GPU、GPU填充渲染结果到显存的速度会快于屏幕刷新,因此当屏幕刷新进行的过程中很可能会出现显存内容被改变的情况,从而造成Tearing(画面撕裂)。
Unity在Quality Settings中有个VSync Count属性可以设置VSync,分别是Don’t Sync(关闭VSync)、Every VBlank(每个VBlank计算一帧)、Every Second VBlank(每两个VBlank计算一帧)。https://docs.unity3d.com/Manual/class-QualitySettings.html
using UnityEngine;
public class Test : MonoBehaviour
{
float updateInterval = 0.5f;
private float accum = 0.0f;
private float frames = 0;
private float timeleft;
void Start()
{
timeleft = updateInterval;
}
void Update()
{
timeleft -= Time.deltaTime;
accum += Time.timeScale / Time.deltaTime;
++frames;
if (timeleft <= 0.0)
{
Debug.Log( "" + (accum / frames).ToString("f2"));
timeleft = updateInterval;
accum = 0.0f;
frames = 0;
}
}
}
显示器扫描的过程中有两个重要的概念:HBlank(行消隐)和VBlank(场消隐)。HBlank是指当行扫描到最右端时需要快速返回到下一行的最左端的过程。而VBlank则是指扫描完一帧,准备开始扫描下一帧,扫描线从右下角返回到左上角的过程。这两个过程的时间间隔中,扫描线需要变得blank,以防止看到一条斜线显示在屏幕上。游戏渲染中的VSync(垂直同步)技术就与刷新率和VBlank有关。先说说为什么需要VSync。一般情况下CPU执行游戏逻辑和GPU执行渲染的计算都会快于屏幕的刷新,也就是CPU提交渲染数据和命令到GPU、GPU填充渲染结果到显存的速度会快于屏幕刷新,因此当屏幕刷新进行的过程中很可能会出现显存内容被改变的情况,从而造成Tearing(画面撕裂)。
Unity在Quality Settings中有个VSync Count属性可以设置VSync,分别是Don’t Sync(关闭VSync)、Every VBlank(每个VBlank计算一帧)、Every Second VBlank(每两个VBlank计算一帧)。https://docs.unity3d.com/Manual/class-QualitySettings.html
相关文章推荐
- jGgrid设置垂直滚动条以及显示高度
- Unity3D显示帧率以及设置不限制帧率
- Unity3D显示帧率以及设置不限制帧率
- Unity 帧率设置和显示FPS脚本
- 自定义Dialog,去除系统默认黑色背景以及边框并设置dialog的显示位置
- Unity(六) 使用XML/JSON/Binary数据文件封装场景以及StreamingAssets目录的安卓平台同步
- 自定义Dialog,去除系统默认黑色背景以及边框并设置dialog的显示位置
- TextView设置字体格式以及滚动显示效果
- UNITY把3D模型显示在UI层级上的思路
- Moss/Sharepoint 为特定用户组设置特定视图以及可见视图,自定义列表新建页,修改页和显示页(无代码法)
- DWORD数据类型和ZeroMemory函数解释以及IDE黑色背景设置和相同源代码高亮显示
- Unity中拖动的简单实现(UGUI以及3D物体)
- JS+CSS设置img在DIV中只显示Img垂直居中的部分
- Unity3d 中显示 Spine 动画节点 以及设置 帧事件
- 【Unity】3D碰撞物体的设置
- unity 3d GUI.Toolbar以及GUI.Toggle
- ScrollView中嵌套的viewPager,viepager高度设置为wrap_content时内容不显示问题以及与scrollview冲突的解决方案
- Qt如何设置窗口屏幕居中显示以及设置大小
- iOS UILabel显示文字设置不同的颜色以及行间距
- unity, 设置帧率上限