如果你在前端岗位做了两三年,页面写得越来越顺,但简历上能拿得出手的东西还是后台管理系统和活动页,那 WebGL 和 Three.js 值得你花时间看一看。它解决的是这样一个工作场景:产品想做一个能旋转、能拆解、能跟着滚动变化的 3D 展示,比如产品官网的立体模型、数据大屏里的三维地图、活动页里带光影的互动场景。这类需求以前会外包给专门做 3D 的团队,现在越来越多地落在前端身上。会做的人少,报价自然高一些,这是它被称为「蓝海」的实际原因,不是什么营销话术。

先想清楚:它难在哪,值不值得投入

WebGL 本身是浏览器的底层绘图接口,直接写它要处理着色器、矩阵、顶点数据,上手门槛不低。Three.js 把这层复杂度包了起来,用场景、相机、灯光、网格这几个概念就能搭出东西,但它并没有把图形学的知识抹掉——坐标系怎么算、光照为什么是这个颜色、模型为什么卡顿,最后还是要回到原理上。所以这门课的性质是:它不轻松,但如果你确实要吃 3D 这碗饭,绕不开。

判断适不适合自己,看两点。一是你现在的项目里有没有真正出现 3D 需求,哪怕只是一个模型展示;二是你愿不愿意花时间理解数学和渲染逻辑,而不只是复制粘贴一段能跑的代码。只想要「酷炫效果」的话,网上现成的库和模板够用,不必系统学。

学完之后,你应该能独立做什么

这门课的目标不是让你记住 API,而是能独立交付一个完整的 3D 场景。具体来说,学完应该能做到这几件事:

  • 看懂并调整 WebGL 的渲染流程,出问题时知道是几何、材质还是光照环节出的错
  • 用 Three.js 从零搭起场景,加载外部模型,自己调材质和灯光,做出符合设计稿的效果
  • 给场景加上交互,比如鼠标控制视角、点击拾取物体、滚动驱动动画
  • 针对不同设备做优化,让它在手机上不至于卡成幻灯片
  • 把成品整理成能放进作品集、能在面试时讲清楚思路的项目

这几条里,最后一条最实际。面试官不太关心你学过哪门课,更关心你做过什么、遇到过什么问题、怎么解决的。

资料的结构和用法

整份资料从 Web3D 技术的基础讲起,先交代 WebGL 和 Three.js 各自的位置与关系,再进入 Three.js 的开发流程,然后覆盖模型加载、材质、光影这些具体功能,最后落到性能优化和实战项目上。这个顺序是有讲究的:不先把底层概念弄清楚,后面调效果时只能靠猜。

使用上建议分三段。第一段是基础部分,别急着跳,图形学的概念一旦欠账,后面会反复卡壳,这段可以慢一点。第二段是功能模块,边看边在本地敲一遍,尤其是材质和光照,参数改一改、对比一下,比看十遍讲解有用。第三段是实战项目,尽量独立完成,卡住了再回头看对应章节,而不是跟着视频一路抄下来。四个实战项目不用全做,挑和你目标岗位最接近的两个做透,剩下的当作参考。

适合什么基础的人

前端开发者最顺,JavaScript 熟练、看得懂模块化代码就能开始,剩下的图形学知识课程会补。做游戏、做设计、做全栈的同学也能学,但要注意:如果你完全没有编程经验,这门课不是合适的起点,先把 JS 基础打牢再来。反过来,如果你已经有 WebGL 基础、想直接学高级渲染技巧,这门课偏入门到实战的定位,可能会觉得前半段太基础。

一句话总结:它值得投入的前提,是你手头或目标岗位里真的有 3D 场景要做。有需求,它是能让你独立交付的一套完整路径;没需求,学完也容易放生。按自己的实际情况决定。

课程目录

课程目录133 集
  • 00 资料 源代码
  • 01 city_ppt.zip
  • 02 city-real-time.zip
  • 01 第1章 课程开篇 01 1-1 课程导学.mp4
  • 02 1-2 课程简介.mp4
  • 02 第2章 WebGL 简单应用:学习 WebGL 简单使用,建立 WebGL 认知 01 2-1 canvas 和 webgl 的区别.mp4
  • 02 2-2 认识 webgl,了解 webgl.mp4
  • 03 2-3 webgl 入门 - 给画布换个颜色.mp4
  • 04 2-4 绘制一个点.mp4
  • 05 2-5 介绍 webgl 三维坐标系.mp4
  • 06 2-6 学习使用 attribute 变量-绘制一个水平移动的点.mp4
  • 07 2-7 通过鼠标控制绘制.mp4
  • 08 2-8 使用 uniform 变量 - 绘制不同颜色的点.mp4
  • 09 2-9 实战:实现一个贪吃蛇小游戏.mp4
  • 03 第3章 WebGL 多图形绘制和动画 01 3-1 使用缓冲区对象 - 绘制多个点.mp4
  • 02 3-2 多缓冲区和数据偏移.mp4
  • 03 3-3 实现多种图形绘制.mp4
  • 04 3-4 图形平移 - 着色器.mp4
  • 05 3-5 图形缩放 - 着色器.mp4
  • 06 3-6 图形旋转 - 着色器.mp4
  • 07 3-7 图形平移 - 平移矩阵.mp4
  • 08 3-8 图形缩放 - 缩放矩阵.mp4
  • 09 3-9 图形旋转 - 旋转矩阵.mp4
  • 10 3-
  • 10 图形复合变换 - 矩阵组合.mp4
  • 11 3-11 实战:实现动态入场效果.mp4
  • 04 第4章 WebGL 颜色和纹理 01 4-1 使用 varying 变量 - 绘制彩色三角形.mp4
  • 02 4-2 从顶点到图形 – webgl 渲染流程介绍.mp4
  • 03 4-3 给图形添加背景图.mp4
  • 04 4-4 使用多重纹理.mp4
  • 05 4-5 实战:实现基于 webgl 的放大镜.mp4
  • 05 第5章 WebGL原理学习:OpenGL ES 语言 01 5-1 OpenGL ES 语言基础.mp4
  • 02 5-2 矢量和矩阵.mp4
  • 03 5-3 纹理取样器.mp4
  • 04 5-4 分支和循环.mp4
  • 05 5-5 函数.mp4
  • 06 5-6 内置函数介绍.mp4
  • 07 5-7 存储限定词.mp4
  • 08 5-8 实战:实现 webgl 小球融合.mp4
  • 06 第6章 WebGL 三维世界 01 6-1 3D 基础.mp4
  • 02 6-2 正射投影.mp4
  • 03 6-3 透视投影.mp4
  • 04 6-4 立方体绘制(顶点法).mp4
  • 05 6-5 立方体绘制(索引法).mp4
  • 06 6-6 实战:实现图形圆角.mp4
  • 07 第7章 webgl 光照 01 7-1 光是如何使用的.mp4
  • 02 7-2 给场景添加光源.mp4
  • 08 第8章 WebGL 进阶操作 01 8-1 雾化.mp4
  • 02 8-2 绘制圆形的点.mp4
  • 03 8-3 绘制半透明物体.mp4
  • 09 第9章 【Threejs 基础】简单实现一些阴影、雾化的效果 01 9-1 什么是 threejs.mp4
  • 02 9-2 渲染三维对象.mp4
  • 03 9-3 场景添加灯光.mp4
  • 04 9-4 添加阴影效果.mp4
  • 05 9-5 添加雾化效果.mp4
  • 10 第10章 【Threejs 组件】每个组件都有其独特的使用方法,可以做特定的设置 01 10-1 基础组件 - Scene.mp4
  • 02 10-2 基础组件 - 几何体.mp4
  • 03 10-3 基础组件 - 正射投影相机.mp4
  • 04 10-4 基础组件 - 透视投影相机.mp4
  • 11 第11章 【Threejs 光源】相信光,能照亮场景的每个角落,一个不够再来几个吧。 01 11-1 光源类型.mp4
  • 02 11-2 聚光灯光源.mp4
  • 03 11-3 环境光.mp4
  • 04 11-4 点光源.mp4
  • 05 11-5 平行光.mp4
  • 06 11-6 半球光.mp4
  • 12 第12章 【threejs 材质】不同的材质能呈现出不同的效果,合适最重要 01 12-1 材质简介.mp4
  • 02 12-2 基础材质.mp4
  • 03 12-3 深度材质.mp4
  • 04 12-4 法向材质.mp4
  • 05 12-5 面材质.mp4
  • 06 12-6 郎伯材质.mp4
  • 07 12-7 Phong 材质.mp4
  • 08 12-8 着色器材质.mp4
  • 09 12-9 直线和虚线.mp4
  • 10 12-10 联合材质.mp4
  • 13 第13章 【Threejs 几何体】还在为物体坐标烦恼吗内置几何体来了 01 13-1 几何体简介.mp4
  • 02 13-2 二维平面.mp4
  • 03 13-3 二维圆.mp4
  • 04 13-4 自定义二维图形.mp4
  • 05 13-5 立方体.mp4
  • 06 13-6 球体.mp4
  • 07 13-7 圆柱体.mp4
  • 08 13-8 圆环.mp4
  • 09 13-9 纽结.mp4
  • 10 13-10 多面体.mp4
  • 11 13-11 文字.mp4
  • 14 第14章 【Threejs 动画和相机】不同的角度看到的景色是不一样的,从多角度来观察吧 01 14-1 基础动画.mp4
  • 02 14-2 通过 Tween 实现动画.mp4
  • 03 14-3 点击选取对象.mp4
  • 04 14-4 加载外部文件.mp4
  • 05 14-5 使用相机控件.mp4
  • 06 14-6 实战:实现骨骼动画.mp4
  • 15 第15章 【Threejs 纹理】场景不再单一,丰富多了 01 15-1 基础纹理.mp4
  • 02 15-2 凹凸贴图.mp4
  • 03 15-3 法向贴图.mp4
  • 04 15-4 环境贴图.mp4
  • 05 15-5 canvas贴图.mp4
  • 06 15-6 实战:实现辉光效果.mp4
  • 16 第16章 【Threejs 粒子】舞动的精灵,你值得拥有 01 16-1 粒子和粒子系统.mp4
  • 02 16-2 使用粒子实现水波效果.mp4
  • 03 16-3 粒子组合成立方体.mp4
  • 04 16-4 图片粒子化.mp4
  • 17 第17章 【智慧城市实战】基础内容怎么样了来实战一下吧 01 17-1 blender基础使用.mp4
  • 02 17-2 通过blender创建城市模型.mp4
  • 03 17-3 创建项目及场景添加.mp4
  • 04 17-4 加载城市模型.mp4
  • 05 17-5 背景天空盒.mp4
  • 06 17-6 添加交互效果.mp4
  • 07 17-7 给建筑物添加渐变色.mp4
  • 08 17-8 创建建筑物外围线条.mp4
  • 09 17-9 添加建筑物扫描线.mp4
  • 10 17-10 添加场景扫描线.mp4
  • 11 17-11 特效:雷达效果.mp4
  • 12 17-12 特效:透明墙.mp4
  • 13 17-13 特效:地面扩散.mp4
  • 14 17-14 特效:扩散半球.mp4
  • 15 17-15 特效:旋转四棱锥.mp4
  • 16 17-16 特效:飞线.mp4
  • 17 17-17 特效:路径移动.mp4
  • 18 17-18 场景文字添加.mp4
  • 19 17-19 天气:冬雪.mp4
  • 20 17-20 天气:夏雨.mp4
  • 21 17-21 跟随鼠标缩放.mp4
  • 22 17-22 建筑物生长.mp4
  • 23 17-23 烟雾预警.mp4
  • 18 第18章 番外篇:webgl里的数学 01 18-1 番外 1 三角函数.mp4
  • 02 18-2 番外 2 向量乘以标量.mp4
  • 03 18-3 番外 3 向量长度计算.mp4
  • 04 18-4 番外 4 两个向量的距离.mp4
  • 05 18-5 番外 5 归一化.mp4
  • 06 18-6 番外 6 点积.mp4
  • 07 18-7 番外 7 叉积.mp4
  • 08 18-8 番外 8 向量运算.mp4
  • 09 18-9 番外 9 矩阵运算.mp4
  • 10 18-
  • 10 番外 10 旋转矩阵.mp4