WebGL是基于OpenGL ES的底层图形API,JavaScript负责指挥渲染流程;Three.js等库封装了底层细节,使创建3D效果更简单高效。
WebGL 是浏览器中直接调用 GPU 渲染 3D 图形的技术,它本身不是 JavaScript 库,而是一套基于 OpenGL ES 的底层图形 API。JavaScript 负责设置上下文、准备数据、编写着色器、管理渲染流程——换句话说,JS 是 WebGL 的“指挥员”,不是“画笔”本身。
要让 3D 效果跑起来,必须走完这几个关键环节:
gl = canvas.getContext('webgl'))mat4 类库计算),传给着色器的 uniform 变量gl.drawArrays() 或 gl.drawElements() 开始绘制原生 WebGL 代码量大、易出错、兼容性需手动处理。实际项目中,绝大多数人用 Three.js 这类封装库来创建 3D 效果:
Scene)放物体、灯光、相机P
erspectiveCamera)决定观察角度WebGLRenderer)自动处理上下文、着色器、缓冲区等底层细节Mesh)= 几何体(BoxGeometry) + 材质(MeshBasicMaterial)mesh.rotation.x += 0.01;,再配合 requestAnimationFrame 循环渲染3D 效果动起来,靠的不是单次绘制,而是每秒约 60 次的重复计算与重绘:
render() 就会反映新状态gsap 或 three.js 内置的 Tween 控制时间曲线gl.readPixels、过度使用透明混合基本上就这些。WebGL 提供能力,JavaScript 组织逻辑,而真正降低门槛的是像 Three.js 这样的抽象层——先跑通一个旋转立方体,后面就容易了。