返回目录
开源项目文档办公类新手

three.js —— JavaScript 3D 库

three.js 是一个旨在打造易用、轻量、跨浏览器、通用型 3D 库的开源项目。当前构建仅包含 WebGL 与 WebGPU 渲染器,SVG 与 CSS3D 渲染器以 addons(附加组件)形式提供。项目提供示例、文档、手册、Wiki、迁移指南、问答、论坛与 Discord 等入口,用户可通过一段 ES 模块代码创建场景、相机、几何体与渲染器,并在浏览器中渲染动画立方体。

0 次阅读2026/09/17 发布
three.js —— JavaScript 3D 库 来源图片

社区作者 · zZz

它解决什么问题

three.js 的定位是 easy-to-use(易用)、lightweight(轻量)、cross-browser(跨浏览器)、general-purpose(通用)的 3D 库。

渲染能力:当前构建(current builds)只包含 WebGL 与 WebGPU 渲染器;SVG 与 CSS3D 渲染器同样可用,但以 addons(附加组件)形式提供。

官方入口(页面列出):Examples(示例)、Docs(文档)、Manual(手册)、Wiki、Migrating(迁移)、Questions(问答)、Forum(论坛)、Discord、Change log(变更日志)、Releases(发行版)。

典型用法:页面给出的示例代码创建了场景(Scene)、相机(PerspectiveCamera)、几何立方体(BoxGeometry + MeshNormalMaterial + Mesh),把立方体加入场景;随后创建 WebGLRenderer(开启 antialias),设置尺寸、注册动画循环,并把渲染器的 domElement 追加到 document.body;在 animate 中根据 time 修改立方体的 rotation.x 与 rotation.y,并调用 renderer.render(scene, camera) 完成每帧绘制。

仓库克隆:带全部历史克隆约有 ~2 GB 下载量,若不需完整历史可使用 depth 参数显著降低下载体积。

注意:来源正文未给出该项目的许可证信息、版本号、npm 安装与构建/本地起服务的具体命令,相关内容待核验,不应臆测。

— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。

安装 / 开始使用

准备环境:需要现代浏览器环境用于运行渲染结果;作为前端/JavaScript 3D 库以 ES 模块方式引入使用。正文未给出 Node.js 或构建工具的具体版本要求,待核验。

第 1 步:克隆仓库。完整历史克隆会产生约 2 GB 下载量;若不需要完整历史,可使用 depth 参数显著减小下载体积:

命令
git clone --depth=1 https://github.com/mrdoob/three.js.git

第 2 步:引入库(页面示例使用 ES 模块导入):

import * as THREE from 'three';

第 3 步:首次运行的最小示例(页面提供的用法代码,创建场景、相机、立方体与 WebGL 渲染器,并驱动动画):

const width = window.innerWidth, height = window.innerHeight;

// init const camera = new THREE.PerspectiveCamera(70, width / height, 0.01, 10); camera.position.z = 1;

const scene = new THREE.Scene();

const geometry = new THREE.BoxGeometry(0.2, 0.2, 0.2); const material = new THREE.MeshNormalMaterial();

const mesh = new THREE.Mesh(geometry, material); scene.add(mesh);

const renderer = new THREE.WebGLRenderer({ antialias: true }); renderer.setSize(width, height); renderer.setAnimationLoop(animate); document.body.appendChild(renderer.domElement);

// animation function animate(time) { mesh.rotation.x = time / 2000; mesh.rotation.y = time / 1000; renderer.render(scene, camera); }

第 4 步:验证结果。原文说明:如果一切顺利,你应该能看到渲染出来的画面(“If everything goes well, you should see this.”),即随 time 持续旋转的立方体被渲染在页面上。

第 5 步:进一步查阅资料。页面提供 Examples、Docs、Manual、Wiki、Migrating、Questions、Forum、Discord 等入口,可据此继续学习与排查问题。

常见问题:

  • 克隆太慢或占用空间过大:完整历史约 2 GB,使用 --depth=1 可显著减少下载量。
  • 想用 SVG 或 CSS3D 渲染:当前构建只含 WebGL 与 WebGPU 渲染器,SVG 与 CSS3D 渲染器以 addons 形式提供,需按 addons 方式引入。
  • 正文未给出 npm 安装、打包构建与本地静态服务的命令,也未给出具体版本号与许可证信息,这些内容待核验。

适用场景

在浏览器中创建 3D 场景
相机
几何体
材质与渲染器
基于 WebGL / WebGPU 的网页端实时 3D 渲染
网页 3D 交互展示与产品/数据可视化
Web 3D 应用与游戏相关原型开发
通过 addons 使用 SVG
CSS3D 等扩展渲染能力
学习与教学 3D 图形编程(配合 Examples
Docs
Manual)