4 步跑通 three.js:从安装到转起第一个立方体
4 步跑通 three.js从安装到转起第一个立方体【免费下载链接】three.jsJavaScript 3D Library.项目地址: https://gitcode.com/GitHub_Trending/th/three.jsthree.js 是一个跨浏览器的 JavaScript 3D 库底层走 WebGL / WebGPU 渲染。做数据可视化、3D 产品展示或轻量网页游戏想 10 分钟看到三维效果的开发者看这篇就够了。为什么写 WebGL 和套重型引擎都不如它直接手写 WebGL着色器、缓冲、视口、矩阵变换一样都少不了光一个漫反射光照就要几十行 GLSL调通之前先怀疑人生。把 Unreal 这类重型引擎塞进网页产物动辄上百兆首屏加载速度不可接受。three.js 卡在这两者中间你写的是scene、camera、renderer这种高层对象着色器细节它替你处理好。想搞自定义效果时再下沉到ShaderMaterial或 TSL 节点系统进退自如。安装 three.js 并渲染第一个旋转立方体第 1 步拿源码。全量历史体积大--depth1只拉最新提交快很多# --depth1 只拉最新一次提交体积小得多 git clone --depth1 https://gitcode.com/GitHub_Trending/th/three.js cd three.js npm install第 2 步在项目根目录建index.html。three.js 是 ES Module用 importmap 声明模块映射别用script src老写法html head script typeimportmap { imports: { three: ./src/Three.js, !-- 主库入口 -- three/addons/: ./examples/jsm/ !-- 官方扩展库 -- } } /script /head body script typemodule src./main.js/script /body /html第 3 步写main.js。这段建场景、相机、一个立方体、渲染器并挂上动画循环import * as THREE from three; const camera new THREE.PerspectiveCamera(70, innerWidth / innerHeight, 0.01, 10); camera.position.z 1; const scene new THREE.Scene(); scene.add(new THREE.Mesh( new THREE.BoxGeometry(0.2, 0.2, 0.2), new THREE.MeshNormalMaterial() // 法线材质无需灯光就有颜色变化 )); const renderer new THREE.WebGLRenderer({ antialias: true }); renderer.setSize(innerWidth, innerHeight); renderer.setAnimationLoop((time) { // requestAnimationFrame 的封装 const cube scene.children[0]; cube.rotation.x time / 2000; cube.rotation.y time / 1000; renderer.render(scene, camera); }); document.body.appendChild(renderer.domElement);第 4 步起个静态服务器打开页面。别双击 html 文件直接跑file 协议会被 CORS 拦住python3 -m http.server 8080然后浏览器访问http://localhost:8080。看到彩色立方体在黑色背景里平滑旋转说明渲染管线全通了。能力地图四个高频场景怎么用加轨道控制让用户能拖着转模型的时候给相机挂上 OrbitControls用户就能拖拽旋转、滚轮缩放做模型预览一步到位。这段只有两行核心配置import { OrbitControls } from three/addons/controls/OrbitControls.js; const controls new OrbitControls(camera, renderer.domElement); controls.enableDamping true; // 惯性阻尼拖起来更顺滑加载 glTF 模型把美术资产搬进网页的时候仓库 examples/models/ 里有现成的 DamagedHelmet 等 glTF / OBJ / FBX 测试模型练手零成本。下面这段把模型读进场景import { GLTFLoader } from three/addons/loaders/GLTFLoader.js; new GLTFLoader().load(examples/models/gltf/DamagedHelmet/glTF/DamagedHelmet.gltf, (gltf) { scene.add(gltf.scene); camera.position.set(0, 1, 4); });接后处理管线画面不够电影感的时候泛光、景深、SSR 这些 pass 全在 examples/jsm/postprocessing/挂到 EffectComposer 上即可。以泛光为例import { EffectComposer } from three/addons/postprocessing/EffectComposer.js; import { UnrealBloomPass } from three/addons/postprocessing/UnrealBloomPass.js; const composer new EffectComposer(renderer); composer.addPass(new UnrealBloomPass(new THREE.Vector2(innerWidth, innerHeight), 1.2));注意动画循环里要改成调composer.render()而不是renderer.render()。用 WebGPU compute 模拟数万粒子CPU 算不动的时候新版 TSL 节点系统让 GPU 端模拟不难examples/webgpu_compute_particles.html 就是 20 万粒子的完整参考实现。核心是这段用 TSL 把物理逻辑写成 JS 风格的节点再交给 GPU compute// 示例从 three/webgpu 和 three/tsl 导入importmap 里要相应补上映射 const computeUpdate Fn(() { const position positions.element(instanceIndex); const velocity velocities.element(instanceIndex); velocity.addAssign(vec3(0.00, gravity, 0.00)); position.addAssign(velocity); })().compute(particleCount); // 编译成 GPU compute 任务 renderer.setAnimationLoop(() { renderer.compute(computeUpdate); // 先在 GPU 上更新粒子位置 renderer.render(scene, camera); });粒子缓冲初始化、材质部分看示例文件里computeInit和SpriteNodeMaterial那段直接抄。踩过的坑与修复importmap 不生效控制台报 Failed to resolve module specifier。根因是 importmap 脚本必须出现在 module 脚本之前声明才生效。检查 HTML 里两段脚本的先后顺序9 次有 8 次是这个。双击 html 加载 GLTF 报 CORS 错误起服务器就没事。file:// 协议下浏览器的 fetch 请求会被直接拦掉。任何静态服务器python3 -m http.server都能解决别用 file 协议跑 three.js。场景越跑越卡显存占用一直涨。频繁创建又销毁的 mesh对应的 geometry 和 material 没释放GPU 显存只增不减。删除对象前补一句mesh.geometry.dispose(); mesh.material.dispose()就干净了。什么时候别用它以及怎么调试场景仓库自带 Chrome DevTools 调试扩展chrome://extensions开启开发者模式加载已解压的扩展程序选 devtools/ 目录DevTools 的 Three.js 标签页会这样展示场景图场景图、渲染器状态一目了然调试场景结构比 console.log 快得多。three.js 适合把 3D 门槛从会写 GLSL降到会拼场景产品可视化、数据大屏、轻量网页游戏直接选它重度实时 3D 产品要配合引擎并自己做优化别指望开箱即用的帧率。花 10 分钟把上面的立方体转起来比看十篇教程都管用。【免费下载链接】three.jsJavaScript 3D Library.项目地址: https://gitcode.com/GitHub_Trending/th/three.js创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

【GitHub项目实战】FishSpeech 实现零样本语音合成

【GitHub项目实战】FishSpeech 实现零样本语音合成

深度学习语音项目常见的难点集中在环境配置、模型依赖和推理流程。借助 Anaconda 虚拟环境结合 GPU 加速,可有效规避依赖冲突,提升运行效率。FishSpeech 作为零样本语音合成项目,面向通用与边缘设备场景,公开了完整源码与模型下载方式,并通过命令行脚本、WebUI、API 服务和…

2026/9/29 7:41:25 阅读更多 →
基于SpringBoot的大学生健康管理系统设计实现

基于SpringBoot的大学生健康管理系统设计实现

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 1. 项目背景与意义 随着高校招生规模不断扩大,大学生群体的健康管理需求日益突出。传统模式下,学生体检数据、体测成绩、日常健康记录往往分散在…

2026/9/29 7:41:25 阅读更多 →
5个封神级Claude Skills开源项目:用TaoToken统一Key接入SKILL.md工具链

5个封神级Claude Skills开源项目:用TaoToken统一Key接入SKILL.md工具链

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/29 7:41:25 阅读更多 →

最新新闻

Zookeeper集群搭建超详细步骤:三节点高可用实战

Zookeeper集群搭建超详细步骤:三节点高可用实战

Zookeeper集群搭建步骤,越详细越好,照着做就行做分布式系统的人,基本绕不开zookeeper。Zookeeper是分布式协调服务,选主、配置管理、分布式锁、注册中心,很多底层能力都靠它。你在生产环境里直接部署单机zookeeper&…

2026/9/29 8:20:09 阅读更多 →
NET 中的 MCP 协议(ModelContextProtocol)理论背景:TaoToken 统一 Key 通道下的配置骨架与验证

NET 中的 MCP 协议(ModelContextProtocol)理论背景:TaoToken 统一 Key 通道下的配置骨架与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/29 8:20:09 阅读更多 →
fast-element RepeatDirective.createPlaceholder 属性详解:模板指令占位符的生成机制

fast-element RepeatDirective.createPlaceholder 属性详解:模板指令占位符的生成机制

前端UI组件 【免费下载链接】fast The adaptive interface system for modern web experiences. 项目地址: https://gitcode.com/gh_mirrors/fa/fast 点击查看 免费下载 RepeatDirective 是 microsoft/fast-element 模板引擎中负责列表(数组&#xff09…

2026/9/29 8:20:09 阅读更多 →
从设立海外子公司到一周合规用工:名义雇主(EOR)经历了什么

从设立海外子公司到一周合规用工:名义雇主(EOR)经历了什么

一切要从「怎么在别国合法雇人」说起企业跨境经营时,最先撞上的往往不是市场,而是一个基础问题:如何在一个自己没有法律实体的国家,合法地雇佣一名当地员工。名义雇主(Employer of Record,简称 EOR&#xf…

2026/9/29 8:20:09 阅读更多 →
临界电流密度(CCD)— 固态电池快充能力的天花板指标

临界电流密度(CCD)— 固态电池快充能力的天花板指标

TL;DR:临界电流密度(CCD)是固态电池在不发生锂枝晶短路的前提下能承受的最大电流密度,直接决定了快充能力的上限。2025–2026年的多项研究表明,通过电解质致密化、晶界工程、界面粘附设计和自修复机制等策略&#xff0…

2026/9/29 8:20:09 阅读更多 →
IEEE 802.1Qcc-2018精读:TSN从能通到可管理的关键一跃

IEEE 802.1Qcc-2018精读:TSN从能通到可管理的关键一跃

简介:IEEE 802.1Qcc-2018 是时间敏感网络(TSN)协议族的关键标准修订,由 IEEE 计算机学会赞助发布,在 IEEE Std 802.1Q-2018 基础上提出第三十一号修正案,重点增强流预留协议(SRP)与性…

2026/9/29 8:19:09 阅读更多 →

日新闻

开源模型端侧落地实战:量化、推理加速与Agent上下文管理

开源模型端侧落地实战:量化、推理加速与Agent上下文管理

1. 从"追平"到"端侧落地":开源模型这波到底变了什么如果你最近半年一直在关注模型圈的动态,应该能明显感觉到一个拐点:开源模型和闭源旗舰之间的差距,正在从"代差"变成"身位差"。以前大家…

2026/9/29 0:00:05 阅读更多 →
AI Evals实战指南:从零搭建LLM应用评估体系与CI/CD集成

AI Evals实战指南:从零搭建LLM应用评估体系与CI/CD集成

1. 为什么AI Evals值得你花时间搞明白做LLM应用的人,迟早会撞上同一堵墙:模型输出飘忽不定,今天答得好好的,明天换个问法就胡说八道。你改了一版提示词,感觉好像好了点,但到底好了多少?说不清。…

2026/9/29 0:00:05 阅读更多 →
Java采购管理系统实战:从数据库设计到事务一致性

Java采购管理系统实战:从数据库设计到事务一致性

简介:这是一套面向Java Web初学者与课程设计者的采购管理系统完整源码,采用JSP技术搭建,配合MySQL数据库,用于解决企业采购信息的管理问题,适合作为毕业设计、课程大作业或进销存类项目的参考模板。系统实现了用户登录…

2026/9/29 0:00:05 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/29 8:16:59 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/28 9:47:26 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/28 8:07:01 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/28 16:55:15 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/29 5:58:00 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/29 3:55:56 阅读更多 →