首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

教你如何用Three.js创造一个三维太阳系

前言 笔者认为Three.js是一个伟大框架,为什么这样说,因为它可以让我们轻易创造三维世界,甚至好像笔者写这遍教程,可以创造一个太阳系,在这个三维世界里你就是创世主。哈哈!好像说得有点夸!!...三维太阳系完整效果 了解一些基本天文知识 学习创造这个三维太阳系之前先了解一下基本天文知识:太阳系有“八大行星”,按照离太阳距离从近到远,它们依次为水星、金星、地球、火星、木星、土星、天王星、海王星...] 了解Three框架 Three一些基本概念我在用最简单方式打造Three.js 3D汽车展示厅一文也粗略介绍一下,为了让同学们加深理解,笔者就相对于太阳系来比如一下 场景 Sence 相当于太阳系...(繁星背景) 这个满天星效果是太阳系背景,运用到Three粒子系统,行星密度可自行调整 const starForge = () => { const starQty = 10000...] 海王星纹理贴图 [neptune.jpg] 最后 一个三维太阳系就创造出来啦,这个例子也是很适合刚入门three.js同学,目的也是提高对三维兴趣,提高自身成就感。

2.5K43
您找到你想要的搜索结果了吗?
是的
没有找到

Canvas基本动画-太阳系动画 原

动画基本步骤 1、清空canvas 除非接下来要画内容会完全充满canvas(例如背景图),否则你需要清空所有,最简单方法是使用clearRect方法 2、保存canvas状态 如果你要改变一些会改变...canvas状态设置(样式,变形之类),又要在每画一帧之时都是原始状态的话,你需要先保存一下 3、绘制动画图形 4、恢复canvas状态 如果已经保存了canvas状态,可以先恢复它,然后重绘下一帧...下面是MDN网站关于Canvas基本动画章节中一个例子。是一个相对比较综合例子,涉及到画布很多基础并常用用法,包括canvas的如何使用图片,坐标原点移动,画布旋转,状态保存与恢复等。...function draw() { var ctx = document.getElementById("canvas").getContext("2d"); //在现有的画布内容后面绘制新图形...2 * Math.PI) / 60) * time.getSeconds() + ((2 * Math.PI) / 60000) * time.getMilliseconds()); //地球背面

80430

说下three.js相机

而针对投影方式不同,照相机又分为正交投影照相机与透视投影照相机。 PerspectiveCamera(透视相机) 这种投影模式是被设计用来模拟人类眼睛观察事物方式。...这是3d渲染中最经常使用投影模式。...另一种常用相机就是正交相机, OrthographicCamera(正交相机) 使用这种投影模式,无论物体离照相机距离是多少,物体大小始终保持不变。...这在渲染2d场景、UI元素以及其他场景是很有用。一般说来,对于制图、建模软件通常使用正交投影,这样不会因为投影而改变物体比例。...除了这两种常用相机,还有一类特殊相机 CubeCamera(立方体相机或全景相机) CubeCamera( near : Number, far : Number, cubeResolution

1.5K10

Three.js入门案例(下)

关注初识Threejs与小编一起学习成长 在上一篇案例中实现了几何体-球体旋转效果,今天继续丰富这个案例效果,在球体周围添加光圈及旋转模块(图片+文字组成),均匀分布在球体周围,围绕着球体逆时针旋转.../线段颜色 }); //椭圆曲线 var ellipse = new THREE.EllipseCurve( 0,0, //椭圆中心...,大家就可以根据自身业务做出处理,比如弹框等。...04 写在最后 至此这个案例就结束了,在绘制周围模块方案上不是很友好,要每个模块生成两种状态图片,大家也可以想想有没有更好解决方案,期待与您交流学习,快去动手实践吧~ 如果你对本文内容有任何建议,...关注公众号回复three.js,获取完整案例代码。

2.6K21

Three.js入门案例(上)

关注初识Threejs与小编一起学习成长 在Three.js赋能下,WEB网页效果逐渐丰富起来,今天我们就来运用之前学习Three.js基础知识,实现一个旋转几何体-球体。 ?...、缩放、平移;CSS2DRenderer.js是CSS 2D渲染器,使用CSS2DObject和CSS2DRenderer可以绘制一个2D效果标签,将三维物体和基于HTML标签相结合。...THREE.Mesh(earthGeometry, earthMaterial); //设置球体标题 var h2html=$("Three.js...,大家可以动手尝试一下修改构造函数参数值,如:基础材质纹理贴图、网格模型旋转方向等,通过它们巧妙组合,可以让场景更加绚丽多彩,快去动手实践吧~ 如果你对本文内容有任何建议,欢迎与小编沟通交流,一起学习成长...关注公众号回复three.js,获取完整案例代码。

5.8K20

three.js矩阵计算

概述 three.js中自带了矩阵运算库,不过在使用过程中总是容易混淆。不知道是行主序还是列主序,前乘和后乘也很容易弄反。就在这里辨析一下。 2. 详论 2.1....行主序与列主序列 很早就知道OpenGL中使用矩阵是列主序,而Direct3D中使用是行主序,但是没什么具体体会,还直接弄混淆了。...应该来说,无论Direct3D还是OpenGL,使用矩阵应该都能线性代数中描述矩阵是等价,只不过存储方式不同。...矩阵在编程实现中一般会表示成数组形式,以线性代数中描述矩阵为标准,行主序就是依次按行存储,而列主序就是依次按列存储。...在网上找一个在线矩阵计算器,相对应计算结果如下: ? 因此可以认为,threejs矩阵内部储存形式为列主序,表达和描述仍然是线性代数中行主序,set()函数就是以行主序接受矩阵参数

7.3K30

three.js中帧缓存使用

概述 在网上查阅了一下three.js关于帧缓存使用,感觉很多都是关于three.js中后处理通道使用。...后处理通道确实使用FBO实现,但其实我就是想获取某个时刻渲染结果作为纹理,没必要在动态渲染中进行后处理。...对照代码来说,渲染器清空色(背景色)是白色: renderer.setClearColor(0xffffff, 1); //渲染器背景色 但是由于给当前场景根节点设置背景色为黑色:...而这个缓存场景是通过同一个渲染器绘制,也就是缓存场景剩余部分,就会是渲染器背景色,也就是白色了。 3....参考 Quick Tip: How to Render to a Texture in Three.js 如何在ThreeJS中使用场景渲染结果作为纹理?

4.1K10

搭建太阳系可视化系统,带你探索宇宙未知奥秘

站在更高立足点上,作为人类这个物种中一员,我们理所应当对我们生活星球、所在太阳系有一定认识,对 8 大行星各自运行轨道、质量、资源存储量甚至是地形有一定了解。...实现价值 1.作为科研成果、新发现载体, 3D 太空数据可视化呈现,用于向普通民众科普太阳系构成、各行星组织结构等知识,可置于博物馆大屏、学校大屏,也可用于互联网产品,作为航空航天类网站门户页、...,甚至可以通过该系统对行星状态实时监控呈现,对宇航员作业点、作业情况做在线监控。...在这里我简单介绍下太阳系及8大行星,加深下对太阳系了解: 1.水星是八大行星中最小一个,水星上温差极大; 2.金星以顺时针方向自转,太阳西升东落;自转速度非常缓慢; 3.地球是人来已知唯一有生命存在星球...天王星上一年约等于地球上84年; 8.海王星也是一颗冰质巨行星,它有着荧荧淡蓝色光。 而太阳系中所有天体都围绕太阳这颗恒星运转。

72230

学习Three.js 最佳平台!

大家好,我是「前端实验室」爱分享了不起~ 今天给大家分享5个免费学习Three.js平台网站! 1....Three.js 官方文档 首选肯定是Three.js 官方文档了,这是学习和使用Three.js 这一基于 WebGL JavaScript 3D 图形库重要资源。...Three.js 中文网 这是一个国人开发Three.js中文网,专注于Three.js资源技术分享。网站包含了大量视频教程、文字教程、电子书以及各种3D案例、源码等等,非常全面。...网址:http://webgl3d.cn/ 3. three.js 在线编辑器 three.js editor 这是官方提供一个基于Three.js在线3D编辑器,你可以直接在网页上创建和编辑3D场景...借助高级智能感知和自动完成功能,您可以轻松编写复杂着色器,同时也可以实时预览,也可以在这里分享你作品。

12610

three.js 背景模糊另类实现方法

微信截图_20220505101916.png gltf,glb模型下载网站 我们有时候项目时候会想让背景和模型完全独立分开,分别控制亮度,模糊度等,笔者提供一种方法可以很好实现,以下只写关键代码...;float: right;position: absolute;left:190px;right:0;top:0;bottom:0;z-index:1"> 然后在js文件写上加载gltf代码...renderer.domElement ); controls2 = new OrbitControls( camera2, renderer2.domElement ); 以下gltf加载器代码省略,官方文档都可以查到,...let sphere5=new THREE.Mesh(sphere4,material1); scene2.add(sphere5); 然后需要注意是把渲染器分别加入容器...renderer2.render(scene,camer);//执行渲染操作 renderer2.render(scene2,camera2);//执行渲染操作} 我们可以通过以下代码改变pos2模糊度

2.9K20

WebVR如此近 - three.jsWebVR示例程序解析

关于WebVR 最近VR发展十分吸引人们眼球,很多同学应该也心痒痒想体验VR设备,然而现在专业硬件价格还比较高,入手一个估计就要吃土了。...three.js examples中也提供了关于VR控制例子。这里主要通过对代码注释方式来解读关键文件。 示例最终效果如下,打开Demo并把手机放进cardboard即可体验。.../ 按照惯例,这篇解析默认你至少有three.js相关基础知识。...有兴趣也可以浏览一下我之前写一篇文章: 《ThreeJS 轻松实现主视觉太阳系漫游》 https://zhuanlan.zhihu.com/p/20796329 (复制链接在浏览器打开) 这篇解析中three.js..."> //three.js核心库 //从连接VR设备中获得位置信息并应用在camera

2.5K90

搭建太阳系可视化系统,带你探索宇宙未知奥秘

站在更高立足点上,作为人类这个物种中一员,我们理所应当对我们生活星球、所在太阳系有一定认识,对 8 大行星各自运行轨道、质量、资源存储量甚至是地形有一定了解。...预览地址: https://www.hightopo.com/demo/solar-system/ 实现价值 1.作为科研成果、新发现载体, 3D 太空数据可视化呈现,用于向普通民众科普太阳系构成...,甚至可以通过该系统对行星状态实时监控呈现,对宇航员作业点、作业情况做在线监控。...在这里我简单介绍下太阳系及8大行星,加深下对太阳系了解: 1.水星是八大行星中最小一个,水星上温差极大; 2.金星以顺时针方向自转,太阳西升东落;自转速度非常缓慢; 3.地球是人来已知唯一有生命存在星球...Web 3D 有着无限想象空间,有着非常丰富数据呈现方式,更有着诸多让人眼前一亮可视化效果,利用 HT 提供二三维引擎可以轻松地实现太阳系可视化。

40420

Three.js - 走进3D奇妙世界

本文将通过Three.js介绍及示例带我们走进3D奇妙世界。...Three.js是用于实现web端3D效果JS库,它出现让3D应用开发更简单,本文将通过Three.js介绍及示例带我们走进3D奇妙世界。...一、Three.js相关概念 1.1 Three.JS Three.JS是基于WebGLJavascript开源框架,简言之,就是能够实现3D效果JS库。...二、Three.js应用场景 利用Three.JS可以制作出很多酷炫3D动画,并且Three.js还可以通过鼠标、键盘、拖拽等事件形成交互,在页面上增加一些3D动画和3D交互可以产生更好用户体验。...在电商行业利用Three.JS可以实现产品3D效果,这样用户就可以360度全方位地观察商品了,给用户带来更好购物体验。另外,使用Three.JS还可以制作类似微信跳一跳那样小游戏。

9.7K40

Three.js - 走进3D奇妙世界

本文将通过Three.js介绍及示例带我们走进3D奇妙世界。...Three.js是用于实现web端3D效果JS库,它出现让3D应用开发更简单,本文将通过Three.js介绍及示例带我们走进3D奇妙世界。...一、Three.js相关概念 1.1 Three.JS Three.JS是基于WebGLJavascript开源框架,简言之,就是能够实现3D效果JS库。...二、Three.js应用场景 利用Three.JS可以制作出很多酷炫3D动画,并且Three.js还可以通过鼠标、键盘、拖拽等事件形成交互,在页面上增加一些3D动画和3D交互可以产生更好用户体验。...在电商行业利用Three.JS可以实现产品3D效果,这样用户就可以360度全方位地观察商品了,给用户带来更好购物体验。另外,使用Three.JS还可以制作类似微信跳一跳那样小游戏。

8.3K20

Three.js』几个简单入门动画(新手篇)

在了解了 Three.js 基础概念之后也有这个想法。 简单动画可以提高 Three.js 初学者 学习兴趣和信心。 本文会从初学者角度出发讲解几个简单动画,包括:平移、旋转、缩放、跳跃。.../js/Three/src/Three.js' // 引入 Three.js // 1、创建场景 const scene = new THREE.Scene() // 2、创建相机(类似人眼睛...如果对上面的代码还不太理解,可以先看看 《『Three.js』起飞!》 ,坐标轴方面可以看看 《『Three.js』辅助坐标轴》 。 动画原理 这里讲动画主要是指物体运动效果。...比如,做一个以 x轴 方向动画(来回移动)。 // 省略部分代码...... // 注释掉原本渲染方法,我们需要另外写一个。...代码仓库 ⭐几个Three.js简单动画

2.5K10

太阳系相关图,教你优雅打开“可视化”大门

在本文中我们会利用新创造可视化方法“太阳系相关图”来探讨相关性和组间相关性,并展示如何轻松地创建一个你自己太阳系相关图。...太阳系相关图是为了解决以下两个需求而设计: 每个输入变量与输出变量相关性可视化展示 输入变量组间相关性 我们来探索一个标准数据集并生成其太阳系相关图。...在我们例子中,只有两个变量是强烈地相关以至于几乎相同。并不是每个太阳系里都只有很少卫星。在大数据环境中,太阳系相关图中通常有更多变量(且附带有许多卫星)。...因此它不可能告诉我们有关原力者是否是绝地战士任何事情。这就是为什么纤原体数量(MIDI-CHLORIANS)在最外面的轨道。 我们可以许多调整来改进太阳系相关图。...通过视觉总结这个问题有助于找到相互关联和最有影响力输入变量。由于可视化跟信息传达是息息相关,所以我们选择了广大读者都熟悉太阳系类比。

63930

Three.js构建三维世界房子

最近在学习Three.js,无奈不知道从哪里下手,查阅大部分资料都是先介绍渲染器(Renderer)、场景(Scene)、照相机(Camera),其实这些概念确实需要了解,如果不给你立体模型,你始终是无法理解...网上看了一个大佬(神说要有光)教程,感觉算是一只脚已经入了门,接下来我们通过这篇文章,从造物主视角开始创建一个房子。我们先看下最终效果。...1 创造世界 很好理解,就是我们现在看到世界,用Three.js做出来。...首先对Three.js还是要了解其一些概念,这样才能看更明白。新建一个项目,引入Three.js,网上不好js找没关系,我会在最后提供本篇文章完整demo。...2 创建一个地面 上面的步骤只是创建了全景世界,但是我们需要有个地面来放置我们之后要创建房子,因此,这个地面要比较大。

1.7K21
领券