这是我参与「第四届青训营 」笔记创作活动的的第14天
初识WebGL
Why WebGL/Why GPU
- WebGL是什么?
- GPU != WebGL != 3D
- WebGL为什么不像其他前端技术那么简单?
Modern Graphics System
- 光栅(Raster):几乎所有的现代图形系统都是基于光栅来实绘制图形的,光栅就是指构成图像的像素阵列。
- 像素(Pixel):一个像素对应图像上的一个点,它通常保存图像上的某个具体位置的颜色等信息。
- 帧缓存(Frame Buffer):在绘图过程中,像素信息被存放 I于帧缓存中,帧缓存是一块内存地址。
- CPU(Central Processing Unit):中央处理单元,负责逻车辑计算
- GPU(Graphics Processing Unit):图形处理单元,负责图图形计算
The Pipeline
CPU vs GPU
- GPU由大量的小运算单元构成
- 每个运算单元只负责处理很简单的计算
- 每个运算单元彼此独立
- 因此所有计算可以并行处理
WebGL & OpenGL
参考资料:web.eecs.umich.edu/~sugih/cour…
WebGL Startup
- 创建WebGL上下文
- 创建WebGL Program
- 将数据存入缓冲区
- 将缓冲区数据读取到GPU
- GPU执行WebGL程序,输出结果
Create WebGL Context
The Shadres
Create Program
Data to Frame Buffer
Frame Buffer to GPU
OutPut
WebGL
Mesh.js
Polygons
Draw Polygon with 2D Triangulations
3D Meshing
Transforms
Apply Transforms
3D Matrix
3D 标准模型的四个齐次矩阵(mat4)
- 投影矩阵 Projection Matrix
- 模型矩阵 Model Matrix
- 视图矩阵 View Matrix
- 法向量矩阵 Normal Matrix
Read more
thebookofshaders.com/ doodle.webgl.group/ spritejs.com/#/ threejs.org/ www.shadertoy.com/ github.com/mesh-js/mes…