Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dragonir/threejs-odessey
Three.js 进阶之旅,掘金专栏配套项目。从基础入门开始,全方位了解Three.js的各种特性,并结合和应用对应特性,实现令人眼前一亮的Web创意页面,进而逐步挖掘Three.js和WebGL深层次的知识。 👇
https://github.com/dragonir/threejs-odessey
css html javascript three-js threejs
Last synced: 3 days ago
JSON representation
Three.js 进阶之旅,掘金专栏配套项目。从基础入门开始,全方位了解Three.js的各种特性,并结合和应用对应特性,实现令人眼前一亮的Web创意页面,进而逐步挖掘Three.js和WebGL深层次的知识。 👇
- Host: GitHub
- URL: https://github.com/dragonir/threejs-odessey
- Owner: dragonir
- Created: 2022-09-17T06:53:45.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-08-04T00:00:04.000Z (over 1 year ago)
- Last Synced: 2025-02-01T01:28:19.334Z (10 days ago)
- Topics: css, html, javascript, three-js, threejs
- Language: JavaScript
- Homepage: https://juejin.cn/column/7140122697622618119
- Size: 35.2 MB
- Stars: 700
- Watchers: 13
- Forks: 168
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Three.js 进阶之旅
`Three.js` 进阶之旅,掘金专栏配套项目。从基础入门开始,全方位了解 `Three.js` 的各种特性,并结合和应用对应特性,实现令人眼前一亮的 `Web` 创意页面,进而逐步挖掘 `Three.js` 和 `WebGL` 深层次的知识。
![logo](./docs/images/logo.png)
> `🟢` 掘金专栏配套项目:[https://juejin.cn/column/7140122697622618119](https://juejin.cn/column/7140122697622618119)
## 目录介绍
对项目内容有不明白的地方可前往项目对应文章查看。
### 01-introduction
**文章**:[Three.js 进阶之旅:基础入门(上)](https://juejin.cn/post/7145064095178293285)
**摘要**:本文是**Three.js 进阶之旅**系列专栏的首篇文章,本专栏的主要内容具体规划如下:前两篇将简要介绍 `Three.js` 开发环境搭建以及Three.js 的一些基础概念和必备知识,后续文章会通过一个个趣味的 `3D` 页面实例,逐步讲解 `Three.js` 相关性能优化、着色器、后期渲染、物理特性等应用中知识……
### 02-basic
**文章**:[Three.js 进阶之旅:基础入门(下)](https://juejin.cn/post/7146383940931026958)
**摘要**:本篇文章将继续通过一个简单 `3D` 创意页面的开发,简要汇总一下必备的 `Three.js` 的基础知识,梳理要点,为后续页面的开发打下坚实的基础。通过本文的内容,你将获得的知识包括:`OrbitControls` 镜头轨道控制器的使用、`Scene.Fog` 场景雾化、`Three.js` 中的光源、几何体、材质、模型、贴图、动画等。
### 03-shadow
**文章**:[Three.js 进阶之旅:模型光源结合生成明暗变化的创意页面-光与影之诗](https://juejin.cn/post/7148969678642102286)
**摘要**:本文使用 `Three.js` 基础知识以及 `Tween` 补间动画相关的知识,创建一个使用光源和模型结合而成的 `3D` 创意页面。你将学到使用 `Blender` 压缩模型、使用模型加载管理器管理加载进度、使用模型加载器加载压缩过的模型、优化渲染器的输出效果、使用 `TWEEN` 实现位移动画和镜头补间动画、点光源随鼠标移动动画、鼠标光标悬浮到导航栏时虚拟光标动画、监听页面元素可见性以及 `CSS` 动画效果等。
### 04-particles
**文章**:[Three.js 进阶之旅:神奇的粒子系统-迷失太空](https://juejin.cn/post/7155278132806123557)
**摘要**:本文将讨论关于 `Three.js` 中各种创建粒子的方式和以及如何优化粒子的样式和使用粒子,最终将结合本文所讲的粒子知识,制作一个充满趣味和创意的 `3D` 粒子页面——**迷失太空**。
### 05-shader
**文章**:[Three.js 进阶之旅:Shader着色器入门](https://juejin.cn/post/7158032481302609950)
**摘要**:本文内容主要介绍 `Three.js` 中的着色器知识,通过讲解什么是着色器、着色器的分类、`GLSL` 语言的核心语法要点、`Three.js` 中的两种着色器材质的 `RawShaderMaterial` 和 `ShaderMaterial` 的区别和用法等基本知识,深入理解着色器,并使用它创建出有趣的三维图形。
### 06-shader-pattern
**文章**:[Three.js 进阶之旅:Shader着色器基础图案-旷野之息神庙铁球](https://juejin.cn/post/7158628520623603748)
**摘要**:本文内容主要是 `Three.js` 着色器的实践和应用,将在上篇文章的基础上通过 `50个` 着色器简易图案例子,一步步理解使用着色器创建图案的步骤和技巧。最后,将使用绘制的着色器图案,构建一个类似于《**塞尔达传说:旷野之息**》游戏中的**神庙铁球**效果。
### 07-postprocessing
**文章**:[Three.js 进阶之旅:后期处理-3D瑞克与莫蒂](https://juejin.cn/post/7166785669866455070)
**摘要**:本文内容就接着上文内容详细讲解一下 `Three.js` 后期处理的基本知识。最后,通过结合文章讲解的知识内容,将开发一个《**瑞克与莫蒂**》发光传送门效果的 `3D` 页面。
### 08-media
**文章**:[Three.js 进阶之旅:多媒体应用-3D Iphone](https://juejin.cn/post/7171244215270113310)
**摘要**:文章将依次详细讲解 `Three.js` 中文本字体、图片、音频、视频等多媒体元素的原理。了解完基本原理后,将利用本文内容所学到的知识,简单制作一个可以播放视频的三维手机展示页面……
### 09-scroll-animation
开发中……
### 10-rabbit-craft-go
**文章**:[Three.js 进阶之旅:新春特典-Rabbit craft go](https://juejin.cn/post/7191415427350659129)
**摘要**:本文内容作为兔年新春纪念页面,将使用 `Three.js` 及其他前端开发知识,创建一个以兔子为主题的 `3D` 简单的趣味页面 `Rabbit craft go`。包括使用纯代码创建三维浮岛、小河、树木、兔子、胡萝卜以及兔子的运动交互、浮岛的动画效果……
### 11-physics
**文章**:[Three.js 进阶之旅:物理效果-碰撞和声音](https://juejin.cn/post/7200039970575941693)
**摘要**:本文内容主要汇总如何在 `Three.js` 创建的 `3D` 世界中添加物理效果,使其更加真实。你将学习到如何使用 `Cannon.js` 创建一个 `3D` 物理世界,并在物理世界更新对象、联系材质、施加外力、处理多个物体中添加物体之间的碰撞效果,通过检测碰撞激烈程度来添加撞击声音等。
### 12-physics
**文章**:[Three.js 进阶之旅:物理效果-3D乒乓球小游戏](https://juejin.cn/post/7212268146580947005)
**摘要**:本文将使用新的技术栈 `React Three Fiber` 和 `Cannon.js` 来实现一个具有物理特性的小游戏,通过本文的阅读,你将学习到 `React Three Fiber` 及它的相关生态、使用 `React Three Fiber` 搭建基础三维场景、如何使用新技术栈给场景中对象的添加物理特性等,最后将开发一个简单的乒乓球小游戏。
### 13-panorama
**文章**:[Three.js 进阶之旅:全景漫游-初阶移动相机版](https://juejin.cn/post/7215268204062490679)
**摘要**:`3D` 全景技术可以实现日常生活中的很多功能需求,比如地图的街景全景模式、数字展厅、在线看房、社交媒体的全景图预览、短视频直播平台的全景直播等。本文内容及此专栏下一篇文章将实现如何在多个3D全景中穿梭漫游,达到如在真实世界中前进后退的视觉效果。
### 14-panorama-advanced
**文章**:[Three.js 进阶之旅:全景漫游-高阶版在线看房](https://juejin.cn/post/7220075270664634428)
**摘要**:本文案例将实现一个 `3D` 在线看房案例,通过阅读本文和实践案例,你将学到的知识包括:使用 `Three.js` 用新的技术思路实现多个场景的加载和场景间的丝滑过渡切换、随着空间一直和角度实时变化的房源小地图、在全景场景中添加如地面指引、空间物体展示、房间标注等多种类型的交互热点等。
**视频**:[https://www.bilibili.com/video/BV1w84y1M7fK/](https://www.bilibili.com/video/BV1w84y1M7fK/)
> `👨💻` 持续更新中 ···
![add](./docs/images/add.png)