Three.js 三维
基于 WebGL 的 3D 渲染库:场景、相机、光照、材质与自定义着色器。
技术栈: three@0.170, WebGL, OrbitControls
- 太阳系轨道 — 着色器太阳+日冕、程序化行星与光环、30 颗卫星;可缩放聚焦,并切换太阳前进的螺旋轨迹模式。
- 旋转立方体 — 基础场景、光照与线框。
- 环绕视角与灯光 — OrbitControls 与多光源。
- 粒子场 — Points 粒子场与鼠标交互。
- 几何体画廊 — 内置几何体与射线拾取。
- 波浪地形 — 顶点动画生成地形。
- 小人动画 — 层级模型与骨骼式动画。
- 着色器变形球 — ShaderMaterial 变形球体。
- 晶格 — 用三重循环 i、j、k 在 x、y、z 三个方向各放 n 个小方块,就得到一个立方晶格(像盐的晶体结构)。
- 环带 — 圆环(甜甜圈)可以看成一个半径为 r 的小圆,绕着距离 R 的轴转一圈扫出来的曲面。
- 星云球 — 把球面按经线、纬线切成 N×N 格,每个格点放一个发光的点,就成了“星云球”。
- 多立方 — 第 i 个方块的角度 θᵢ = 2πi/n。
- 螺旋柱 — 参数 u 从 0 走到 1,x、z 绕圆转 k 圈,同时 y 均匀上升 h。
- 玻璃球 — MeshPhysicalMaterial 的 transmission(透射)让光穿过物体,ior(折射率)…
- 线框球 — 正二十面体有 20 个三角形面。
- 批量实例方块 — 用一份几何体一次画出成百上千个方块,每个方块只记自己的位置和颜色,所以数量很多也不卡。
- 起伏面 — 往平静的水里丢一颗石子,波纹会从中心一圈圈向外扩散,而且越往外越弱。
- 点云环 — 土星环由无数冰块组成,每块都像小卫星一样绕土星公转。
- 光柱 — CylinderGeometry 的上下半径可以不同,于是得到一个圆台(被削掉尖的圆锥)。
- 反射地板 — 把物体关于地面翻转复制一份放到地板下面,再让地板半透明,看起来就像地面映出了倒影。
- 环结 — 沿大圈方向绕 p 圈,同时沿管子绕 q 圈,就得到 (p, q) 环面纽结。
- 卫星轨道 — 周期的平方与轨道半径的立方成正比(开普勒第三定律),所以面板里 T²/r³ 对每颗卫星都一样。