5、OpenGL - 渲染基础
OpenGL 渲染的基础
大纲:
1、CPU 和 GPU
2、计算机渲染原理
3、屏幕成像与卡顿情况
1、CPU 和 GPU
1.1、CPU(Central Processing Unit)
现代计算机整个系统的运算核心、控制核心。
处理依赖性非常高的事情
Control控制单元、ALU有一部分运算单元、Cache显存
1.2、GPU(Graphics Processing Unit)
可进行绘图运算工作的专用微处理器,是连接计算机和显示终端的纽带
处理依赖性非常低的事情,因为有非常多的计算单元高并发。
拥有更多的计算单元
2、计算机渲染原理
计算机的渲染,是通过CPU去计算然后一行一行的去扫描显示到显示器上,如果说这个屏幕上半部分正在扫描显示上一帧的位图数据,到下半部分的时候,帧缓存去完成了计算后新的帧缓冲区数据。那么下半部分显示的是新的位图数据,这样上下是对不上的,这就是屏幕撕裂
3、屏幕成像与卡顿情况
为了解决屏幕撕裂的问题,引入了垂直信号的概念。也就是在CPU 和GPU 处理数据的时候,等待垂直信号,垂直信号到来的时候,CPU 和GPU 都处理完了,那么就去渲染到界面,否者不会。
这样的话屏幕撕裂是解决了,但会存在另一个问题,如果垂直信号到来的时候CPU 和 GPU两个没有都处理完的时候不会去渲染界面,就会出现卡顿掉帧的情况
光栅扫描显示;
图像是由像素阵列组成, 显示⼀个图像时间(显示整个光栅所需的时间)和图像复杂度⽆关,因为屏幕上的像素点都要扫描到。
因为视觉有暂留,所以当1秒显示连贯的16帧及以上就可以认为没有卡顿。
而我们要显示在页面上的并不是我们常见的png、jpg格式的图片,这些是压缩图,要显示的是位图(位图的大小也就是图片的宽*高*4(RGBA,红黄蓝,透明度))