WebGL与Three.js
WebGL是在浏览器中渲染3D图形的JavaScript API。Three.js是其上层封装库。
WebGL基础
着色器
- 顶点着色器:处理顶点位置、颜色、纹理坐标
- 片元着色器:处理像素颜色、深度信息
基本图元
点、线、三角形 — 所有图形都由这些图元拼凑
投影
- 正交投影:上帝视角,无近大远小
- 透视投影:符合人眼,近大远小
变换
- 平移:4x4齐次矩阵
- 旋转:三角函数矩阵
- 缩放:对角矩阵
Three.js
- Renderer:渲染器,canvas与程序的桥梁
- Scene:场景容器
- Camera:3D到2D的投影抽象(正交/透视)
- Mesh:网格 = Geometry(形状)+ Material(材质)
- 材质类型:基本材质、Lambert材质、Phong材质
- 光源:环境光、平行光、点光源、聚光灯
用途
- 酷炫活动页(AFrame、Hilo 3D)
- 数据可视化(ECharts 3D图表)
- 游戏、直播视频处理