0

我是 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();

4

1 回答 1

0

我设法解决了这个问题,但老实说,我真的不知道为什么我所做的工作。我的解决方案是通过 Photoshop 更改图像,这让我相信这与照片的大小有关。

如果由于某种原因人们注意到了,这从评论变成了答案,这是因为我对 Stack Overflow 没有经验

于 2020-03-28T23:09:28.180 回答