Code Monkey home page Code Monkey logo

dragonir / threejs-odessey Goto Github PK

View Code? Open in Web Editor NEW
626.0 13.0 154.0 36.05 MB

Three.js 进阶之旅,掘金专栏配套项目。从基础入门开始,全方位了解Three.js的各种特性,并结合和应用对应特性,实现令人眼前一亮的Web创意页面,进而逐步挖掘Three.js和WebGL深层次的知识。 👇

Home Page: https://juejin.cn/column/7140122697622618119

JavaScript 66.35% HTML 9.21% CSS 7.75% GLSL 4.40% Vue 4.84% Stylus 7.46%
css html javascript three-js threejs

threejs-odessey's Introduction

Three.js 进阶之旅

Three.js 进阶之旅,掘金专栏配套项目。从基础入门开始,全方位了解 Three.js 的各种特性,并结合和应用对应特性,实现令人眼前一亮的 Web 创意页面,进而逐步挖掘 Three.jsWebGL 深层次的知识。

logo

🟢 掘金专栏配套项目:https://juejin.cn/column/7140122697622618119

目录介绍

对项目内容有不明白的地方可前往项目对应文章查看。

01-introduction

文章Three.js 进阶之旅:基础入门(上)

摘要:本文是Three.js 进阶之旅系列专栏的首篇文章,本专栏的主要内容具体规划如下:前两篇将简要介绍 Three.js 开发环境搭建以及Three.js 的一些基础概念和必备知识,后续文章会通过一个个趣味的 3D 页面实例,逐步讲解 Three.js 相关性能优化、着色器、后期渲染、物理特性等应用中知识……

02-basic

文章Three.js 进阶之旅:基础入门(下)

摘要:本篇文章将继续通过一个简单 3D 创意页面的开发,简要汇总一下必备的 Three.js 的基础知识,梳理要点,为后续页面的开发打下坚实的基础。通过本文的内容,你将获得的知识包括:OrbitControls 镜头轨道控制器的使用、Scene.Fog 场景雾化、Three.js 中的光源、几何体、材质、模型、贴图、动画等。

03-shadow

文章Three.js 进阶之旅:模型光源结合生成明暗变化的创意页面-光与影之诗

摘要:本文使用 Three.js 基础知识以及 Tween 补间动画相关的知识,创建一个使用光源和模型结合而成的 3D 创意页面。你将学到使用 Blender 压缩模型、使用模型加载管理器管理加载进度、使用模型加载器加载压缩过的模型、优化渲染器的输出效果、使用 TWEEN 实现位移动画和镜头补间动画、点光源随鼠标移动动画、鼠标光标悬浮到导航栏时虚拟光标动画、监听页面元素可见性以及 CSS 动画效果等。

04-particles

文章Three.js 进阶之旅:神奇的粒子系统-迷失太空

摘要:本文将讨论关于 Three.js 中各种创建粒子的方式和以及如何优化粒子的样式和使用粒子,最终将结合本文所讲的粒子知识,制作一个充满趣味和创意的 3D 粒子页面——迷失太空

05-shader

文章Three.js 进阶之旅:Shader着色器入门

摘要:本文内容主要介绍 Three.js 中的着色器知识,通过讲解什么是着色器、着色器的分类、GLSL 语言的核心语法要点、Three.js 中的两种着色器材质的 RawShaderMaterialShaderMaterial 的区别和用法等基本知识,深入理解着色器,并使用它创建出有趣的三维图形。

06-shader-pattern

文章Three.js 进阶之旅:Shader着色器基础图案-旷野之息神庙铁球

摘要:本文内容主要是 Three.js 着色器的实践和应用,将在上篇文章的基础上通过 50个 着色器简易图案例子,一步步理解使用着色器创建图案的步骤和技巧。最后,将使用绘制的着色器图案,构建一个类似于《塞尔达传说:旷野之息》游戏中的神庙铁球效果。

07-postprocessing

文章Three.js 进阶之旅:后期处理-3D瑞克与莫蒂

摘要:本文内容就接着上文内容详细讲解一下 Three.js 后期处理的基本知识。最后,通过结合文章讲解的知识内容,将开发一个《瑞克与莫蒂》发光传送门效果的 3D 页面。

08-media

文章Three.js 进阶之旅:多媒体应用-3D Iphone

摘要:文章将依次详细讲解 Three.js 中文本字体、图片、音频、视频等多媒体元素的原理。了解完基本原理后,将利用本文内容所学到的知识,简单制作一个可以播放视频的三维手机展示页面……

09-scroll-animation

开发中……

10-rabbit-craft-go

文章Three.js 进阶之旅:新春特典-Rabbit craft go

摘要:本文内容作为兔年新春纪念页面,将使用 Three.js 及其他前端开发知识,创建一个以兔子为主题的 3D 简单的趣味页面 Rabbit craft go。包括使用纯代码创建三维浮岛、小河、树木、兔子、胡萝卜以及兔子的运动交互、浮岛的动画效果……

11-physics

文章Three.js 进阶之旅:物理效果-碰撞和声音

摘要:本文内容主要汇总如何在 Three.js 创建的 3D 世界中添加物理效果,使其更加真实。你将学习到如何使用 Cannon.js 创建一个 3D 物理世界,并在物理世界更新对象、联系材质、施加外力、处理多个物体中添加物体之间的碰撞效果,通过检测碰撞激烈程度来添加撞击声音等。

12-physics

文章Three.js 进阶之旅:物理效果-3D乒乓球小游戏

摘要:本文将使用新的技术栈 React Three FiberCannon.js 来实现一个具有物理特性的小游戏,通过本文的阅读,你将学习到 React Three Fiber 及它的相关生态、使用 React Three Fiber 搭建基础三维场景、如何使用新技术栈给场景中对象的添加物理特性等,最后将开发一个简单的乒乓球小游戏。

13-panorama

文章Three.js 进阶之旅:全景漫游-初阶移动相机版

摘要3D 全景技术可以实现日常生活中的很多功能需求,比如地图的街景全景模式、数字展厅、在线看房、社交媒体的全景图预览、短视频直播平台的全景直播等。本文内容及此专栏下一篇文章将实现如何在多个3D全景中穿梭漫游,达到如在真实世界中前进后退的视觉效果。

14-panorama-advanced

文章Three.js 进阶之旅:全景漫游-高阶版在线看房

摘要:本文案例将实现一个 3D 在线看房案例,通过阅读本文和实践案例,你将学到的知识包括:使用 Three.js 用新的技术思路实现多个场景的加载和场景间的丝滑过渡切换、随着空间一直和角度实时变化的房源小地图、在全景场景中添加如地面指引、空间物体展示、房间标注等多种类型的交互热点等。

视频https://www.bilibili.com/video/BV1w84y1M7fK/

👨‍💻 持续更新中 ···

add

threejs-odessey's People

Contributors

dragonir avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

threejs-odessey's Issues

在第一版的Vr看房那个渲染函数有很大的性能问题

在每一帧去用射线判断是否在视口内 来判定是否渲染 执行你这边的函数后 性能下降了2/3 建议不用那个addclass和removeclass 直接使用transform去控制显示和隐藏 这样性能有所提高 使用之后我这边从70fps上身到了200fps
if (Math.abs(pos.x) > 1 || Math.abs(pos.y) > 1 || Math.abs(pos.z) > 1) {
// 点在摄像机外面 不显示
console.log(point.title, '在视口外面')
point.element.style.transform = scale(0, 0)
continue
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.