地球模型展示Three.js

说明

使用 Three.js 展示地球模型的 Demo

贴图比较大,加载时间会比较久,请耐心等待

 

演示地址

https://hu243285237.github.io/Earth_Demo/

 

项目地址

https://github.com/hu243285237/Earth_Demo

 

功能点

模型的加载和显示

加载进度的实时显示

贴图按顺序加载(最主要的贴图最先加载)

自适应屏幕(当缩放浏览器时,保持模型在正中间)

鼠标拖拽物体旋转(并且停止旋转时有缓冲效果)

滚轮缩放物体尺寸(并且限制缩放尺寸大小)

云层自旋转

 

插件

three.min.js ———— threejs 插件

OBJLoader.js ———— 用于加载物体

MTLLoader.js ———— 用于加载材质和贴图

 

模型来源

https://www.cgmodel.com/model-204627.html

更改了贴图的精度,所有贴图从 4096 改为 2048,以加快加载速度

 

部署

需要本地搭服务才能正常运行,比如 httpserver

直接打开 html 无法正常运行

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
地球影子的实现需要使用three.js中的阴影投射和接收功能。具体步骤如下: 1. 创建场景、相机和渲染器。 2. 创建地球模型,并设置其接收阴影。 3. 创建光源,并设置其投射阴影。 4. 将光源添加到场景中。 5. 将地球模型添加到场景中。 6. 开启阴影映射。 7. 渲染场景。 下面是一个简单的示例代码,实现了地球的阴影效果: ```javascript // 创建场景、相机和渲染器 var scene = new THREE.Scene(); var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); var renderer = new THREE.WebGLRenderer(); renderer.setSize(window.innerWidth, window.innerHeight); document.body.appendChild(renderer.domElement); // 创建地球模型,并设置其接收阴影 var geometry = new THREE.SphereGeometry(5, 32, 32); var material = new THREE.MeshPhongMaterial({ color: 0xffffff }); var earth = new THREE.Mesh(geometry, material); earth.receiveShadow = true; scene.add(earth); // 创建光源,并设置其投射阴影 var light = new THREE.DirectionalLight(0xffffff, 1); light.position.set(0, 10, 0); light.castShadow = true; light.shadow.camera.near = 0.1; light.shadow.camera.far = 25; light.shadow.mapSize.width = 1024; light.shadow.mapSize.height = 1024; scene.add(light); // 将地球模型和光源添加到场景中 scene.add(earth); scene.add(light); // 开启阴影映射 renderer.shadowMap.enabled = true; renderer.shadowMap.type = THREE.PCFSoftShadowMap; // 渲染场景 function animate() { requestAnimationFrame(animate); renderer.render(scene, camera); } animate(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值