Three.js专栏(三)、创建一个简单的3D地球

前言:

        通过上节课我们了解了Three.js的最小案例DEMO,熟悉了几个重要组成部分。这节课带领大家编写一个3D地球。Three.js专栏(二)、下载安装、Three.js的入门demo案例;_如何下载three.js文件-CSDN博客文章浏览阅读516次。一文带你了解Three.js的基础知识,创建一个3D页面吧!_如何下载three.js文件https://blog.csdn.net/weixin_44121341/article/details/131534651

一、通过纹理图渲染一个地球

1.1.创建一个纹理加载器对象TextureLoader,可以加载图片作为纹理贴图;

// 引入three.js
import * as THREE from '../../../three.js-r123/build/three.module.js';

// 创建地球mesh网格对象
// 地球半径
var R = 100;

var earth = createSphereMesh(R);

// R:地球半径
function createSphereMesh(R) {

    // 创建纹理加载器对象
    var textureLoader = new THREE.TextureLoader();

    // 加载纹理贴图
    var texture = textureLoader.load('earth.jpg');

    // 创建一个球体几何对象
    var geometry = new THREE.SphereBufferGeometry(R, 40, 40); 
  
    // 材质对象Material
    var material = new THREE.MeshLambertMaterial({
        // color: 0x00ffff,
        map: textur
  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是用three.js创建一个简易的天空盒的步骤: 1. 首先,创建一个场景和一个相机: ```javascript var scene = new THREE.Scene(); var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); camera.position.set(0, 0, 0); scene.add(camera); ``` 2. 创建一个立方体几何体,将其缩放为无限远的距离(这是为了让相机永远在立方体的中心): ```javascript var geometry = new THREE.BoxGeometry(1000, 1000, 1000); geometry.scale(1, 1, -1); ``` 3. 加载6个纹理图片,每个图片表示天空盒的一个面,创建一个立方体贴图材质,并将纹理图片添加到材质中: ```javascript var material = new THREE.MeshBasicMaterial({ map: [ new THREE.TextureLoader().load('right.jpg'), new THREE.TextureLoader().load('left.jpg'), new THREE.TextureLoader().load('top.jpg'), new THREE.TextureLoader().load('bottom.jpg'), new THREE.TextureLoader().load('front.jpg'), new THREE.TextureLoader().load('back.jpg') ], side: THREE.BackSide }); ``` 4. 用立方体几何体和立方体贴图材质创建一个网格,并将其添加到场景中: ```javascript var cube = new THREE.Mesh(geometry, material); scene.add(cube); ``` 5. 最后,创建一个渲染器并将其添加到页面中: ```javascript var renderer = new THREE.WebGLRenderer(); renderer.setSize(window.innerWidth, window.innerHeight); document.body.appendChild(renderer.domElement); ``` 完成后,你就可以看到一个简易的天空盒了。完整的代码如下: ```javascript var scene = new THREE.Scene(); var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); camera.position.set(0, 0, 0); scene.add(camera); var geometry = new THREE.BoxGeometry(1000, 1000, 1000); geometry.scale(1, 1, -1); var material = new THREE.MeshBasicMaterial({ map: [ new THREE.TextureLoader().load('right.jpg'), new THREE.TextureLoader().load('left.jpg'), new THREE.TextureLoader().load('top.jpg'), new THREE.TextureLoader().load('bottom.jpg'), new THREE.TextureLoader().load('front.jpg'), new THREE.TextureLoader().load('back.jpg') ], side: THREE.BackSide }); var cube = new THREE.Mesh(geometry, material); scene.add(cube); var renderer = new THREE.WebGLRenderer(); renderer.setSize(window.innerWidth, window.innerHeight); document.body.appendChild(renderer.domElement); function animate() { requestAnimationFrame(animate); renderer.render(scene, camera); } animate(); ``` 注意:上述代码中的纹理图片需要放在与index.html同级的文件夹下,并且需要根据实际情况修改文件名和路径。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端小砖er

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值