本文介绍通过发现渲染脏区来提高渲染性能。
脏区 Dirty Region
在计算机图形渲染中,可以每一帧绘制全部的画面,但这样对计算机的性能要求非常高。
脏区(Dirty Region)的引入便是为了降低渲染对计算机性能的要求。每一帧绘制的时候,仅仅绘制改变的部分,在软件中可以节省大量的渲染资源。而每一帧渲染时,改变了需要重绘的部分就是脏区。
以下是我的一款 WPF 程序 Walterlv.CloudKeyboard 随着交互的进行不断需要重绘的脏区。
可以看到,脏区几乎涉及到整个界面,而且刷新非常频繁。这显然对渲染性能而言是不利的。
*当然这个程序很小,就算一直全部重新渲染性能也是可以接受的。*不过当程序中存在比较复杂的部分,如大量的 Geometry
以及 3D 图形的时候,重新渲染这一部分将带来严重的性能问题。
WPF 性能套件
先下载 WPF 性能套件: