当前位置:首页 > 时尚生活

threejs 实战:用 threejs 创建一个地球

提示:

演讲

前端大型免费公开课讲座

课程

零基础学习的前端教程都在这里~

上个月底在朋友圈看到一个分享,说“这可能是地球上最美的h5了。”点开后发现这个h5还是很独特的。想了一会儿,我决定不模仿一个。

到现在,高仿已经基本完成。

线上地址github地址

除了手机上的媒体控制不兼容,其他基本都是模仿。那么,为了让你有高度被模仿的感觉,最好用chrome的手机调试模式来访问。微信打开后,你听不到声音,也看不到视频...(后面还有时间看是不是模仿。)

我想模仿一下,因为我觉得这个h5挺酷的,我想看看我需要多久才能找到并实现它的技术路径。

需求分析

这个h5的主要玩法很简单:地球自转时会播放背景音乐(比如海浪声)。为了找出这个声音来自地球上的哪个地方,你需要长时间按下按钮,然后地球就会自动旋转到目标位置。然后镜头拉近,穿过云层,最后你会看到与这个声音相关的视频内容;松开手后,上面的过程会倒退,地球又开始转动,播放下一段神秘的背景音乐。

个人觉得这个设计还是很新颖的,不是说用3D效果,而是用最基本的3D效果和其他常规动画技术实现一个看似复杂的动画(把宇宙画得更接近表面的过程),可以在移动浏览器上流畅运行。另外,声音和视频完美搭配,用户体验不错。

我不确定什么是撞击和规格。我的想法是先在公文里找到这些关键词。如果我找不到他们,我会在谷歌上添加三个。凹凸相关的东西在官网上可以找到,但是最有帮助的是一个关于如何使用threejs创建地球的详细教程。(如果这个教程早点出来的话,会节省修改样例代码的时间。主要是不熟悉3p,没想到哪个例子可能已经有很多教程了)

更改earth4.jpg地图后:

教程中的步骤这里就不赘述了,下面只简单说明一些关键的东西。

地球凹凸

了解bumpmap:

凹凸贴图是一种模拟物体表面凹凸和皱纹的技术。结果是一个明显凹凸不平的表面,而不是一个光滑的表面,尽管底层物体的表面实际上没有改变。对不起,你不能用这种技术倾斜相机看3D山。您可以使用凹凸贴图参数来调整凹凸效果(贴图对照明的影响程度)

through js中的Bumpmap调整光的感知,使人明显感觉到表面的不光滑,但并没有给网格增加起伏,也就是并没有真正改变形状。

官方bumpmap示例渲染如下:

其实这里的earth_bump.jpg是一个DEM,在threejs和heightmap其他地方都叫bumpmap。也就是说高程用灰度表示,越暗越低,越亮越高。常用于GIS专业,这也用于unity3D中的地形创建。

增加了地球凹凸:

地球_规格

要明白earth_spec.jpg是一个镜面贴图,用来调整镜面反射。这里,它主要调整海洋对光的反射,增加真实性。

添加earth_spec后:

浮云

云的添加在前面的教程中已经详细介绍过了,它实际上是一个半径更大的同心球体。

添加云后:

浮动标签

在xplan中,地球表面有一个城市标签,会随着地球的自转而移动,同时保持水平方向。Google关键词:threejs浮动标签。所以我发现:

http://threejs.org/examples/#webgl_spriteshttp://stemkoski.github.io/Three.js/Labeled-Geometry.html

很容易找到方向。稍微参考一下官方API文档和找到的示例代码,就可以轻松地在地球上添加浮动标签。

摘要

在这一点上,3D地球的绘制几乎是一样的。虽然threejs是个新事物,但是大部分函数都很容易找到方向,改变样例代码可以很快达到想要的效果,所以这个过程并不难。关键是如何在一个未知的领域找到自己想要的东西,并快速的为自己所用。

但是我在过程中遇到了性能问题,造成了长时间的延迟。Xplan页面在chrome PC和手机模式下有近60 fps,而我创建的地球在PC模式下有60 FPS,而在手机模式下不到30 fps!最后,逐一调试代码和修改参数花了很长时间才找到原因:

renderer.setPixelRatio(window.devicePixelRatio)

triple js的样例代码中有这样一行,导致我的代码比xplan代码在手机上画的像素点多了一倍,从而导致性能呈指数级下降。

另外,前面说过,对于3D框架中的距离单位和坐标,我是非常模糊的。所以在这里,关于地球的大小,相机的朝向,每个城市标签的3D坐标等与3D坐标相关的问题,我硬拷贝了xplan的参数(还好他们的代码没有压缩...).还有一点需要承认,那就是地球背后的浅蓝色光晕效果,好像用了一些高级的渲染技术,所以我把这部分xplan代码硬移动了。

出发地:segmentfault.com/a/1190000013191860

声明:文章版权归作者所有。如有侵权,请联系边肖删除。

1.《threejs 实战:用 threejs 创建一个地球》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《threejs 实战:用 threejs 创建一个地球》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/shehui/648842.html

上一篇

tomtato 英国公司开发新植物 根部长土豆枝头结西红柿

下一篇

因为梦见你离开我从哭泣中醒来 因为梦见你离开,我从哭泣中醒来

破坏发电机 代码攻击破坏设备,炸毁 27 吨发电机的背后

破坏发电机 代码攻击破坏设备,炸毁 27 吨发电机的背后

作者|八宝粥 由| CSDN制作 标题图来源|东方IC 日前,美国司法部曝光了对俄罗斯黑客组织Sandworm的指控。六名黑客攻击了平昌冬奥会和2017年的法国大选,并发起了NotPetya软件攻...

nasa不敢公布的照片 NASA公布木星两极照:布满巨型风暴 直径堪比地球

nasa不敢公布的照片 NASA公布木星两极照:布满巨型风暴 直径堪比地球

新华社北京5月27日电据《文汇报》报道,美国国家航空航天局近日公布了木星探测器朱诺号号收集的最新数据和研究报告,其中包括木星两极的高清照片,显示它们的表面覆盖着几个直径与地球相当的风暴。科学家们对...

3w咖啡馆 3W咖啡CEO宋永成:3W咖啡馆原来是一个坑

3w咖啡馆 3W咖啡CEO宋永成:3W咖啡馆原来是一个坑

咖啡馆  3W咖啡深圳(3W咖啡)2015-11-25 16: 44   2015年11月21日,第二届中国餐饮O2O峰会论坛在国家会议中心举行。3W咖啡馆CEO宋永诚等多家大餐厅参加了活动...

法厄同 小行星法厄同将掠过地球 最近距离1030万公里

你怕小行星法厄同越来越近吗?直径5公里左右,17天前后近地距离1030万公里我们的记者李媛媛12月17日左右,一颗名为3200法厄同的小行星将经过地球!...

朱祁钰 朱祁钰注定是一个悲剧

  • 朱祁钰 朱祁钰注定是一个悲剧
  • 朱祁钰 朱祁钰注定是一个悲剧
  • 朱祁钰 朱祁钰注定是一个悲剧
别舔呀院长 送别武昌医院院长刘智明 同行:他是一个拼了命做事的人

别舔呀院长 送别武昌医院院长刘智明 同行:他是一个拼了命做事的人

告别武昌医院院长刘志明和他的同事:他是“一个努力做事的人” 在车辆到达殡仪馆之前,很多人保持沉默,有些人有时会摘下口罩擦眼泪。 2月18日上午,湖北省卫健委、武汉市卫健委双双宣布,武汉市武昌医院党...

电脑壁纸易烊千玺 易烊千玺的桌面壁纸是一个人的照片,当看清是谁后,网友:支持

  • 电脑壁纸易烊千玺 易烊千玺的桌面壁纸是一个人的照片,当看清是谁后,网友:支持
  • 电脑壁纸易烊千玺 易烊千玺的桌面壁纸是一个人的照片,当看清是谁后,网友:支持
  • 电脑壁纸易烊千玺 易烊千玺的桌面壁纸是一个人的照片,当看清是谁后,网友:支持

特种部队3全面反击 《特种部队2:全面反击》:队友沉冤得雪,特种部队心归一处,最终拯救地球

  • 特种部队3全面反击 《特种部队2:全面反击》:队友沉冤得雪,特种部队心归一处,最终拯救地球
  • 特种部队3全面反击 《特种部队2:全面反击》:队友沉冤得雪,特种部队心归一处,最终拯救地球
  • 特种部队3全面反击 《特种部队2:全面反击》:队友沉冤得雪,特种部队心归一处,最终拯救地球