WebGL与动画实现 | 青训营笔记

77 阅读1分钟

这是我参与「第四届青训营 」笔记创作活动的的第15天

初识WebGL

image.png

Mordern Graphics System

image.png

  • 光栅(Raster):几乎所有的现代图形系统都是基于光栅来绘制图形的,光栅就是指构成图像的像素阵列。
  • 像素(Pixel):一个像素对应图像上的一个点,它通常保存图像上的某个具体位置的颜色等信息。
  • 帧缓存(Frame Buffer):在绘图过程中,像素信息被存放于帧缓存中,帧缓存是一块内存地址。
  • CPU(Central Processing Unit):中央处理单元,负责逻辑计算。
  • GPU(Graphics Processing Unit):图形处理单元,负责图形计算。

image.png

  1. 轮廓提取/meshing
  2. 光栅化
  3. 帧缓存
  4. 渲染

The Pipeline

image.png

CPU&GPU

CPU: image.png GPU: image.png

WebGL&OpenGL

web.eecs.umich.edu/~sugih/cour… image.png

WebGL

WebGL Startup

  1. 创建WebGL上下文
  2. 创建WebGL Program
  3. 将数据存入缓冲区
  4. 将缓冲区数据读取到GPU
  5. GPU执行WebGL程序,输出结果

image.png

Create WebGL Context

image.png

The Shaders 着色器

image.png

Create Program

image.png

Data to Frame Buffer

image.png

Frame Buffer to GPU

image.png

Output

image.png

2D vs WebGL

code.juejin.cn/pen/7119692…

mesh.js

code.juejin.cn/pen/7119692… image.png

Polygons

image.png

Draw Polygon with 2D Triangulations

image.png

3D meshing

image.png

Transforms

image.png

image.png

Apple Transform

image.png

3D Matrix

image.png

read more