WebGL与动画实现|青训营笔记 这是我参与【第四届青训营】笔记创作活动的第5天
- 光栅(Raster):几乎所有的现代图形系统都是基于光栅来绘制图形的,光栅就是指构成图像的像素阵列
- 像素(Pixel):一个像素对应图形上的一个点,它通常保存图像上的某个具体位置的颜色等信息
- 帧缓存(Frame Buffer):在绘图过程中,像素信息被存放于帧缓存中,帧缓存是一块内存地址
- CPU:中央处理单元,负责逻辑计算
- GPU:图形处理单元,负责图形计算
- 图形绘制过程:CPU-GPU-帧缓存(比如绘制多边形:首先轮廓提取,然后网格化、光栅化,再把点阵数据送到帧缓存中,最后图形渲染)
- 处理单元分成CPU和GPU的原因:CPU≈管道,把箱子送到管道中处理,CPU内核越多=可同时处理的事情越多,但是打个比方,如果将所有像素点比作一堆沙子,CPU处理起来效率依然比较低;而GPU是由大量的小运算单元构成,每个运算单元只负责处理很简单的计算,每个运算单元彼此独立,因此所有计算可以并行处理(可同时并行的处理每个像素点的颜色)
- WebGL是OpenGL的子集
- 使用WebGL需要做的事情:1.创建WebGL的上下文;2.创建WebGL Program;(渲染管线里提供处理的代码)3.将数据存入缓冲区;4.将缓冲区数据读取到GPU;5.GPU执行WebGL程序,输出结果。(如何将像素变成颜色等信息)
- WebGL标准着色器里包含两个着色器:顶点着色器:用于处理图形轮廓、片源着色器:轮廓处理好后,用该处理器处理颜色
- 旋转+缩放是线性变换(可以写成一个矩阵形式)凑成齐次矩阵,这样可以做线性变换,比如多个矩阵合并、相乘等操作。