计算机渲染的那些事
本文是一些个人的理解,欢迎大家批评指正,一起交流! 屏幕图像的显示原理 屏幕图像的显示原理要从CRT(阴极射线显像管)显示器说起,CRT显示器是靠电子束激发屏幕内表面的荧光粉来显示图像的,CRT的电子枪从上到下逐行扫描,扫描完成后就呈现一幅图像。然后电子枪在回到开始的位置进行下一次扫描。为了同步显示器的显示过程和视频控制器的控制过程,显示器会用硬件时钟产生一系列的定时信号,当电子枪换行进行扫描的时候,会发出一个水平同步信号,简称HSync,当一幅画面从上到下绘制完成后,电子枪恢复到开始位置,准备画下一帧前,会发出一个垂直同步信号,简称VSync。显示器都有刷新频率,这个刷新率就是VSync信号产生的频率。 图像显示的过程 图像显示各个部分的分工如下所示 CPU拿到位图数据 ,然后通过总线发送给GPU,GPU做图层渲染,然后将渲染的结果保存在帧缓冲区(FrameBuffer)里面,在由视图控制器根据VSync信号在适应的时机将帧缓冲区里面的内容给到显示器。 双缓冲绘图 最简单的情况下,帧缓冲区只有一个,那么这个时候帧缓冲区的读取和刷新都会有很大的效率问题,为了解决效率问题,通常会引入两个缓冲区,这个时候一个缓冲区用于视频控制器的读取,被称为前缓冲区,另外一个缓冲区用于数据的存放,称为后缓冲区,等每次渲染完毕之后,前缓冲区变后缓冲区,后缓冲区变前缓冲区。这里用一幅别人的图