Three.js 入门实战(一):基础知识附带基础演示代码
一、简单理解什么是 Three.js简单来说Three.js 是WebGL 的高层封装 3D 图形引擎。原生 WebGL 需要编写大量底层着色器代码、处理复杂的图形底层逻辑入门门槛极高。而 Three.js 帮我们封装好了所有底层操作让我们只用简单的 JS 代码就能在浏览器中快速搭建 3D 场景、模型、动画和交互效果是目前网页 3D 开发的主流工具。二、Three.js 核心基石万能三件套所有 Three.js 项目无论简单还是复杂核心骨架永远由场景、相机、渲染器三部分组成也是我们入门必须掌握的第一个知识点。1. 场景 Scene舞台可以把场景理解为一个3D 容器、虚拟舞台我们创建的所有模型、灯光、辅助线等元素都需要添加到场景中才会被渲染显示。2. 相机 Camera眼睛相机相当于我们的眼睛决定了我们以什么角度、什么视野观看 3D 场景。没有相机我们就看不到场景里的任何内容。3. 渲染器 Renderer画师渲染器的作用是将 3D 场景和相机视角转化为浏览器可识别的 2D 画面绘制在画布上展示给用户。这是所有 Three.js 项目的通用起步代码// 1. 创建场景 const scene new THREE.Scene() // 2. 创建透视相机 const camera new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 1000) camera.position.set(4.25, 1.4, -4.5) // 3. 创建渲染器开启抗锯齿 const renderer new THREE.WebGLRenderer({ antialias: true }) renderer.setSize(window.innerWidth, window.innerHeight) document.body.appendChild(renderer.domElement) // 渲染画面 renderer.render(scene, camera)三、相机详解两种主流相机用法Three.js 最常用的只有两种相机适配不同的开发场景1. 透视相机 PerspectiveCamera3D 场景首选模拟人眼视觉效果具备近大远小的透视感所有 3D 展厅、模型展示、3D 游戏场景都用这款相机。参数说明视野角度、画布宽高比、近裁剪面、远裁剪面控制场景渲染范围2. 正交相机 OrthographicCamera2D 场景首选无透视效果物体远近大小一致没有近大远小主要用于 2D 绘图、UI 界面、平面图展示等场景。四、灯光系统3D 场景的氛围感核心Three.js 中没有灯光场景就是一片漆黑物体无法展示材质和立体效果。入门掌握四种常用光源即可1. 环境光 AmbientLight均匀照亮整个场景无方向、不产生阴影主要用于提亮场景暗部避免画面死黑一般作为基础打底光源。2. 平行光 DirectionalLight模拟太阳光效果光线平行照射方向固定可产生阴影适合户外、自然光场景。3. 点光源 PointLight模拟灯泡、烛火从一个点向四周全方位发散光线可设置照射距离、亮度。4. 聚光灯 SpotLight模拟舞台射灯、展厅顶灯呈圆锥形光束照射支持边缘柔化、阴影虚化是 3D 展厅、产品展示的首选主光源。//环境光均匀照亮全场 const ambient new THREE.AmbientLight(0xffffff,0.4) scene.add(ambient) //平行光模拟太阳光 const dirLight new THREE.DirectionalLight(0xffffff,0.6) dirLight.position.set(5,10,5) dirLight.castShadow true scene.add(dirLight) //点光源灯泡式发散光源 const pointLight new THREE.PointLight(0xffffff,0.5) pointLight.position.set(3,3,3) scene.add(pointLight) //聚光灯锥形定向光束展厅展品打光首选 const spotLight new THREE.SpotLight(0xffffff,0.8) spotLight.position.set(0,8,0) spotLight.castShadow true scene.add(spotLight)五、3D 物体核心几何体 材质 纹理所有 3D 模型物体都是由几何体 材质组合而成纹理是物体的表层贴图决定最终视觉效果。1. 几何体 Geometry决定物体的形状结构Three.js 内置了立方体、球体、平面、圆柱体等基础几何体也支持自定义模型几何体外部导入 GLB/GLTF 模型。2. 材质 Material决定物体的外观质感、颜色、反光、透光效果入门常用材质从基础到写实排序MeshBasicMaterial基础材质无光影不受灯光影响MeshLambertMaterial漫反射材质有基础光影无高光MeshPhongMaterial高光材质可模拟金属、塑料高光效果MeshStandardMaterial标准物理材质支持金属度、粗糙度写实效果更好MeshPhysicalMaterial高阶物理材质支持清漆、透光、折射可模拟车漆、玻璃、玉石等真实质感3. 纹理 Texture就是贴在物体表面的图片素材用来丰富物体细节比如车身纹理、地面纹理、墙面贴图等通过 TextureLoader 加载使用。//基础纯色材质 const baseMat new THREE.MeshBasicMaterial({color:0x2288ff}) //标准物理材质金属、粗糙度配置 const metalMat new THREE.MeshPhysicalMaterial({ color:0xcccccc, metalness:1, roughness:0.2, clearcoat:1, transmission:0 }) //玻璃透光材质 const glassMat new THREE.MeshPhysicalMaterial({ color:0xffffff, metalness:0, roughness:0, transmission:1 }) //纹理贴图加载 import {TextureLoader} from three const textureLoader new TextureLoader() const wallTexture textureLoader.load(./wall.jpg)六、实用辅助工具开发调试必备这些工具不影响最终线上效果但能极大提升开发调试效率是 Three.js 开发的常用标配OrbitControls 轨道控制器支持鼠标拖拽旋转视角、滚轮缩放场景自由查看 3D 模型lil-gui 调试面板可视化实时修改模型颜色、灯光强度、位置等参数不用反复改代码刷新AxesHelper 坐标轴辅助线展示 X/Y/Z 三轴方向快速定位物体位置GridHelper 网格辅助线展示地面网格方便对齐物体位置七、动画与交互核心知识点1. 渲染循环静态场景只需渲染一次动画、动态交互场景需要通过 requestAnimationFrame 开启循环渲染实时更新画面。2. Tween.js 补间动画原生 JS 动画书写繁琐、效果生硬Tween.js 是专业的补间动画库可实现位置、旋转、大小的平滑过渡动画适配 Three.js 所有动态效果。3. Raycaster 射线检测3D 场景交互核心通过鼠标点击位置发射射线检测命中的 3D 物体实现点击选中、点击触发动画等交互效果。八、适配与优化基础1. 窗口响应式浏览器窗口大小变化时需要实时更新相机宽高比和渲染器尺寸避免 3D 画面拉伸变形。2. 阴影优化Three.js 阴影默认精度较低可通过调整阴影分辨率、偏移参数解决阴影模糊、条纹失真问题提升场景质感。九、学习总结以上就是 Three.js 入门阶段的全部核心理论知识整体逻辑非常清晰三件套搭建基础场景 → 灯光材质塑造视觉质感 → 辅助工具优化开发体验 → 动画射线实现交互 → 响应式适配页面。单纯看理论很难彻底掌握下一篇我会分享完整的 3D 兰博基尼汽车展厅实战项目把这篇所有知识点全部落地手把手实现模型加载、材质调试、灯光氛围、开关门动画、视角切换、点击交互等完整功能感兴趣的小伙伴可以持续关注参考资源Three.js 官方文档https://threejs.org/docs/Tween.js 动画库https://github.com/tweenjs/tween.js免费 3D 模型资源https://sketchfab.com/

相关新闻

3分钟解锁视频硬字幕提取:videocr让你的视频文字“活“起来

3分钟解锁视频硬字幕提取:videocr让你的视频文字“活“起来

3分钟解锁视频硬字幕提取:videocr让你的视频文字"活"起来 【免费下载链接】videocr Extract hardcoded subtitles from videos using machine learning 项目地址: https://gitcode.com/gh_mirrors/vi/videocr 还在为视频中的硬编码字幕无法编辑而烦…

2026/8/11 15:22:46 阅读更多 →
CDA一级认证备考指南:数据分析师入门攻略

CDA一级认证备考指南:数据分析师入门攻略

1. 项目概述 作为一名数据科学与大数据技术专业的大二学生,我在上学期成功通过了CDA数据分析师一级认证考试。这个证书在业内认可度颇高,对于在校生来说是个不错的加分项。记得当时备考过程中踩了不少坑,也积累了一些实战经验,今天…

2026/8/11 15:22:46 阅读更多 →
Codex写分页接口为什么越翻越慢?用Cursor Pagination解决重复与漏数据

Codex写分页接口为什么越翻越慢?用Cursor Pagination解决重复与漏数据

使用 Codex 编写列表接口时,分页几乎是最常见的需求之一。 刚开始数据只有几百条时,下面这种写法通常没有明显问题: SELECT * FROM orders ORDER BY created_at DESC LIMIT 20 OFFSET 0;第二页: LIMIT 20 OFFSET 20;第三页&…

2026/8/11 15:22:46 阅读更多 →

最新新闻

AI编程助手剪贴板集成:解决终端多模态输入难题的技术方案

AI编程助手剪贴板集成:解决终端多模态输入难题的技术方案

1. 项目概述:当AI助手遇上“粘贴”的尴尬 如果你和我一样,日常重度依赖Claude Code或DeepSeek这类AI编程助手,那你一定遇到过这个让人瞬间血压升高的场景:在终端里,你习惯性地按下 CtrlV ,想把刚刚截取的…

2026/8/11 16:12:04 阅读更多 →
Telegram MTProto 协议,对比主流 IM 协议强在哪

Telegram MTProto 协议,对比主流 IM 协议强在哪

对比对象:Signal 双棘轮协议、Matrix‑Olm/Megolm、传统 XMPP。MTProto 是一套完整传输 加密的自研协议,不只是单纯端到端加密组件。✅ MTProto 相对突出优势移动弱网性能优秀 不依赖标准 TLS,自定义二进制帧、轻量化握手、智能重连&#xf…

2026/8/11 16:12:04 阅读更多 →
单片机毕设项目:基于单片机的 LCD 实时显示燃气安防监测终端设计 基于 51 单片机继电器驱动排风水泵安防控制系统(017602)

单片机毕设项目:基于单片机的 LCD 实时显示燃气安防监测终端设计 基于 51 单片机继电器驱动排风水泵安防控制系统(017602)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/11 16:12:04 阅读更多 →
活动爆灯系统和设备贵吗?多种评委爆灯方案,满足您不同预算不同需求

活动爆灯系统和设备贵吗?多种评委爆灯方案,满足您不同预算不同需求

不少中小型赛事主办方想要综艺同款亮灯效果,但是预算有限,不知道怎么搭配设备最划算。其实有很多方案供选择,完全可以根据自身预算和要求做选择。整套亮灯系统划分四档落地方案,从极简大屏虚拟效果到全硬件实景灯光,按…

2026/8/11 16:12:04 阅读更多 →
专属新品首发专区,2027具身智能展官方预定

专属新品首发专区,2027具身智能展官方预定

2027北京具身智能展特设独立的亚洲创新新品首发专区,为人形机器人整机、轻量化关节模组、端侧具身大模型等创新产品提供专业首秀空间,配套公共路演舞台、沉浸式体验区与媒体专访点位,展位预定企业可优先申请入驻,展会时间为2027年…

2026/8/11 16:12:04 阅读更多 →
3步解锁老旧电脑的Windows 11安装权限

3步解锁老旧电脑的Windows 11安装权限

3步解锁老旧电脑的Windows 11安装权限 【免费下载链接】MediaCreationTool.bat Universal MCT wrapper script for all Windows 10/11 versions from 1507 to 21H2! 项目地址: https://gitcode.com/gh_mirrors/me/MediaCreationTool.bat 你是否还在为那台陪伴多年的老电…

2026/8/11 16:11:04 阅读更多 →

日新闻

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/v…

2026/8/11 0:00:02 阅读更多 →
前后端分离项目中控制台与接口工具数据差异排查指南

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:03 阅读更多 →
AI编程实战:从Claude Code踩坑到游戏开发入门

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/11 0:00:03 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/11 1:08:05 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 1:08:05 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/11 1:08:05 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/10 17:07:33 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/11 1:08:06 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/10 17:07:33 阅读更多 →