计算机渲染原理及图像撕裂掉帧

电脑教程031

计算机渲染原理及图像撕裂掉帧,第1张

通过电子光速的移动来显示,只能画一些线段,如果图形很复杂,那就很耗时。

图像是由像素阵列组成,显示一个图像时间,显示整个光栅所需的时间,和图像复杂度无关,只跟屏幕刷新速度有关。

显示的过程是一个不断刷新的过程,由于人眼有视觉暂留的原因,观察的极限是一秒16帧,所以感受不到屏幕刷新。

所以完美的情况是,每扫描一张图,都不断的显示和刷新。

如果要流畅的显示,就得做到1秒内显示60帧。

但是在单缓冲区的GPU中,由于电子束从左上角逐行扫描一张图的时候,刚好在某一行GPU把已经处理好的下一张位图给到帧缓冲区,所以下面扫描的是新的图片,所以会造成画面撕裂的效果。

屏幕撕裂一般出现在低端设备上,要加载一个高FPS的视频/游戏场景的时候。在iOS设备上并不多见,或者在非常低端的以前的iOS设备上,加载一个APP,界面上出现非常高频的动效以及图层复杂度高并且涵盖了动效时才会出现。

所以苹果通过使用 垂直同步Vsync + 双缓存区DoubleBuffering 的策略解决撕裂的问题。

撕裂 :根本原因是由于CPU/GPU计算处理时间跟屏幕刷新时间不一致导致的,也就是显卡输出帧的速度比显示器快(例如GTX1080运行市面上大多数1080P的游戏帧率都能轻松破百,但大多数人家里的显示器刷新率都是60Hz),显示器的处理速度跟不上显卡,在显示器处理第一帧的时候,第二帧就又到了,导致同一个画面同时出现1、2两帧,所以撕裂就产生了。

垂直同步 :就是给帧缓存区加锁,保证每一帧在扫描完之前都不会替换成下一帧,保证屏幕上下部分显示的是同一帧,防止出现撕裂的情况(还是会引起撕裂,只是防止让你看到)。

双缓存区 :GPU处理过后的信息先放在一个缓存区,然后把又一次处理完成的信息放在第二个缓存区,显示器交替显示两个缓存区的信息,基本上解决撕裂的问题。

但是,解决了撕裂的问题,却又带来了新的问题: 掉帧

总结起来,屏幕卡顿的原因在以下几点:

1.CPU/GPU渲染流水线耗时过长,屏幕刷新时取不到下一帧的数据,造成掉帧。

2.使用了垂直同步Vsync+双缓存区DoubleBuffering的技术,以掉帧为代价解决屏幕撕裂的问题。

有很多人不了解游戏画面撕裂怎么解决,那么今天我在这里给大家分享一点我的小经验,希望可以给你们带来帮助。

方法/步骤

出现撕裂的根本原因就在于显卡输出帧的速度比显示器快,显示器的处理速度跟不上显卡

请点击输入图片描述

在显示器处理显卡丢过来的第1帧的时候,第2帧就又到了,导致同一个画面同时出现1、2两帧,撕裂就产生了。

请点击输入图片描述

所以有两种方法来解决画面撕裂的问题。1提高显示器的刷新率;2降低显卡生成帧的速度。

请点击输入图片描述

显卡上一个叫“Ramdac”的组件不断从显存中取出最新的一帧,刷新到屏幕上

请点击输入图片描述

这个刷新频率就是通常所说的“刷新率”,是固定的,液晶显示器一般采用60Hz。

请点击输入图片描述

垂直同步技术,可以让渲染和刷新更协调,避免刷新到中间时切换帧,并强制GPU渲染速度不得超过Ramdac刷新速度

请点击输入图片描述

从而在不影响观感的前提下消灭画面撕裂,还能避免GPU多余的运算,节约能耗。

请点击输入图片描述

望采纳。。。

画面撕裂主要原因是掉帧造成的。开垂直同步无非是给fps一个上限,稳定帧数用的。游戏掉帧多数原因是游戏流畅度的问题。这里要么是游戏比较老,而你的配置很高,所导致的性能过剩,除了锁帧之外就是尽量开全效。要么就是配置达不到所开特效的流畅要求。导致帧数不稳定,这一般不是显卡背锅,cpu和内存都是有要求的。是通常笔记本才会出现的问题。就是散热不良,导致硬件只能降频才会丢帧。这个不容小视,可能是3种情况里最要注意的,笔记本最大的缺陷正是玩大型游戏时散热不好。