
2022年秋天,我在网上搜Three.js教程,搜出来的结果分两种。
第一种是官方文档翻译,严谨、准确,但读三页就犯困。第二种是短视频平台的“三分钟搞定3D炫酷特效”,标题很猛,点进去是博主拖了几个模型进场景,配一句“是不是很简单”,然后求三连。
我没找到那条让我从“完全不懂”到“能自己搭一个场景”的路。
直到某个论坛角落,有人扔了一条链接,附言只有四个字:这个能跟。
我点进去,是凯子哥的Three.js系列。
那晚我跟着第一期,从安装到画出第一个旋转立方体,用了四十分钟。不是那种“复制粘贴就能跑”的四十分钟,是一行一行敲、每行都报错过、每报错都要退回去检查标点符号的四十分钟。
立方体转起来那一刻,凌晨一点十五分,我截图发了一条仅自己可见的朋友圈。
后来我把这套系列从头到尾跟完,又推荐给三个想学3D开发的朋友。反馈出奇一致:能跟上,不虚,是新手该看的第一套Three.js教程。
第一,它没假定你“应该会什么”。
凯子哥讲课有个习惯,不跳步骤。
讲相机,他先问你一个问题:我们在屏幕上看到三维物体,本质是什么?
你沉默。他自答:是把三维坐标映射到二维平面。那怎么映射?需要视点、目标点、上方向。这三样东西确定,相机就锁死了。然后打开代码,新建PerspectiveCamera,填四个参数,挨个解释:视场角越大看得越广,但边缘会畸变;近裁剪面越近,性能开销越大。
他不是在“教API”,是在还原一个人从零思考“我怎么在平面上模拟三维视觉”的全过程。
很多教程讲相机就一句话“第一个参数是视场角,一般设45”。凯子哥不讲这种话。他让你改到10,场景像望远镜;改到120,立方体变成鱼眼。你亲手拖过那个滑块,这辈子忘不了45是什么意思。
第二,它把数学放在代码之后,又放在代码之前。
新手学Three.js,最大的恐惧不是语法,是数学。
向量、矩阵、欧拉角、四元数——任何一个词扔出来,都能劝退一半人。凯子哥不干这种事。
讲向量,他不先背定义。先放一个场景,立方体在原点,你想让它往右上方移动。x加一点,y加一点,这不就是向量加法?你刚刚用鼠标操作场景的时候,拖拽的方向和距离,不就是向量?
你恍然大悟:原来这玩意儿我早就用了,只是不知道它叫这名字。
然后他才打开文档,告诉你Vector3是什么、dot和cross什么时候用。
这种顺序很重要。不是“学完数学才能写代码”,是“写代码时遇到了问题,发现数学能解决”。恐惧感在后者里是不存在的,你只觉得赚了。
第三,它用“做出来”代替“讲完了”。
凯子哥每个章节都留项目。
讲完基础几何体,项目是搭一个家具展厅——沙发是立方体拉伸,茶几是圆柱压扁,台灯是球体加圆柱加圆环。没有外部模型,全是原生几何体拼的。你拼完那个沙发,歪歪扭扭,但你知道这是你“捏”出来的。
讲完光照,项目是模拟一天的光线变化。环境光模拟黎明,平行光模拟正午,点光源模拟台灯。你调色温、调强度、调位置,看阴影从左边拖到右边,再从右边消失。
讲完粒子系统,项目是星空。你生成五千个随机点,赋颜色、赋大小、赋闪烁频率。然后加一个轨道控制器,允许用户旋转视角。
那一期评论区有人写:我小时候想当天文学家,现在三十岁,做了个星空。
凯子哥没回复那条评论。但下一期开头,他把那个星空的代码又重构了一遍——加了星云效果,加了鼠标悬浮高亮,加了自动漫游路径。
他没说为什么。但看的人都懂。
第四,它不避讳“工程问题”。
很多Three.js教程只讲“怎么做效果”,不讲“怎么搭项目”。你学完炫酷特效,打开公司代码仓库,发现没人用原生Three——都是React Three Fiber,都是封装好的组件,都是工程化那套东西。
凯子哥专门拿出两期讲这个。
一期讲Three.js的响应式设计。窗口大小变了怎么办?resize事件监听,更新camera.aspect,更新projectionMatrix。然后顺带讲性能优化:requestAnimationFrame怎么用、什么时候用、为什么不用setInterval。
另一期讲Three.js和Vue/React怎么配合。他不是踩框架,是告诉你:框架负责DOM,Three负责Canvas,两者各司其职。你可以在Vue里写ref挂载canvas,也可以在React里用useEffect管理scene生命周期。
这两期不讲任何特效,纯工程。但跟完这两期,你才真正敢把Three.js写进简历。
第五,它把“坚持”藏在每一期的结尾。
凯子哥每期视频的最后一分钟,没有彩蛋,没有下期预告。通常是代码跑通,场景正常,他沉默两秒,说一句:
“今天就到这儿,大家多练习。”
有人统计过,这句话他在三年里说了三百多遍。
三百多期视频,从“安装环境”讲到“着色器材质”,从“第一人称控制器”讲到“WebGPU兼容性前瞻”。他不是那种爆火型博主,评论区人数从几百到几千,增长很慢。但每期底下都有老学员回来留言:工作用到粒子系统了,回来复习;面试被问四元数,还好跟过你那期;团队要上3D可视化项目,我成负责人了。
凯子哥基本不回。偶尔回一条,也只是“加油”。
2024年,有人把凯子哥的Three.js系列整理成合集,取名“新手入门3D开发首选”。
合集简介写得很克制:从零到一,完整跟练,无跳步。
但跟过的人知道,这套合集的意义不止于此。
它不是一个高手炫技的舞台,是一个引路人蹲在路口,指着第一道坎说:这儿有点滑,你扶着我的手过去。
新手学3D开发,最难的不是概念复杂、数学难懂、API繁多。
最难的是,在连一个立方体都转不起来的那个夜里,有人陪你把代码敲完。
凯子哥那套系列,就是那个陪你敲完的人。











评论(0)