我是 Three.js 的新手,这是我的第一个真正的项目,因此我遇到的问题可能很容易解决,但我已经在这个问题上停留了 2 周。我一直在尝试在 Three.js 中制作一个带有星星的地球模型,唯一的问题是到目前为止我尝试过的每张图像,除了地球图像之外,它根本不适用于第二个大球体。
这是我用于地球的图像: https ://sos.noaa.gov/ftp_mirror/land/blue_marble/blue_marble/4096.jpg
这些是我为星空尝试的一些图像: https ://pm1.narvii.com/7090/6314dd7daedcc9bbb46da6f8ac7b7e5f4b44cecfr1-600-378v2_hq.jpg https://i1.wp.com/www.ournewearthnews.com/wp-content/ uploads/2019/03/wallpaper.wiki-Galaxy-Background-HD-PIC-WPC-PIC-MCH0113800.jpg?fit=3864%2C1808&ssl=1
<script>
//pre stuff
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera( 75, window.innerWidth/window.innerHeight, 0.1, 1000 );
var loader = new THREE.ImageLoader();
camera.position.z = 5;
const canvas = document.querySelector('#c');
var renderer = new THREE.WebGLRenderer({canvas});
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
var ambient = new THREE.AmbientLight( 0xF6FBFF );
scene.add( ambient );
// main code
var geometry = new THREE.SphereGeometry(2,72,72);
var texture = THREE.ImageUtils.loadTexture('Earth.jpg');
var material = new THREE.MeshPhongMaterial({map: texture});
var sphere = new THREE.Mesh( geometry, material );
sphere.rotateX( .4 );
scene.add( sphere );
var geometry2 = new THREE.SphereGeometry(10,72,72);
var material2 = new THREE.MeshBasicMaterial();
material2.map = THREE.ImageUtils.loadTexture('star-map.jpg')
material2.side = THREE.BackSide
var StarMap = new THREE.Mesh( geometry2, material2 );
scene.add( StarMap );
//animations
var animate = function () {
requestAnimationFrame( animate );
sphere.rotation.y -= 0.002;
renderer.render( scene, camera );
};
animate();