我是靠谱客的博主 粗犷洋葱,最近开发中收集的这篇文章主要介绍【原创】threejs实现一个全景地球介绍,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

介绍

本demo实现一个旋转的全景地球,效果如下

技术分析

1.球体

2.球体表面贴图

实现

创建容器

<div id="container"></div>

引入js文件

<script src="js/three.min.js"></script>      
<script src="js/stats.min.js"></script>      
<script src="js/OrbitControls.js"></script>   

主体部分

            var container, stats;
            var camera, scene, renderer;
            var mesh;
            var controls;

            init();
            animate();

            function init() {
                container = document.getElementById( 'container' );
                //stats
                stats = new Stats();
                container.appendChild( stats.dom );
                //renderer
                renderer = new THREE.WebGLRenderer();
                renderer.setClearColor( 0xffffff );
                renderer.setSize( window.innerWidth, window.innerHeight );
                container.appendChild( renderer.domElement );
                //camera
                camera = new THREE.PerspectiveCamera( 60, window.innerWidth / window.innerHeight, 1, 2000 );
                camera.position.z = 500;
                //controller
                controls = new THREE.OrbitControls( camera, renderer.domElement );
                controls.addEventListener( 'change', render ); 
                //scene
                scene = new THREE.Scene();
                // earth
                
                var loader = new THREE.TextureLoader();
                loader.load( 'img/earth.jpg', function ( texture ) {
                    var geometry = new THREE.SphereGeometry( 200, 20, 20 );
                    var material = new THREE.MeshBasicMaterial( { map: texture, overdraw: 0.5 } );
                    mesh = new THREE.Mesh( geometry, material );
                    scene.add( mesh );
                } );
            }
            
            function animate() {
                requestAnimationFrame( animate );
                controls.update();
                render();
                stats.update();
            }

            function render() {
                camera.lookAt( scene.position );
                renderer.render( scene, camera );
            }

核心部分

                var loader = new THREE.TextureLoader();      //载入贴图
                loader.load( 'img/earth.jpg', function ( texture ) {
                    var geometry = new THREE.SphereGeometry( 200, 20, 20 );
                    var material = new THREE.MeshBasicMaterial( { map: texture, overdraw: 0.5 } );
                    mesh = new THREE.Mesh( geometry, material );
                    scene.add( mesh );
                } );

threejs api的链接:https://threejs.org/docs/index.html#Manual/Introduction/Creating_a_scene

线上效果:http://htmlpreview.github.io/?https://github.com/zimuqi/ThreeJSEarch/blob/master/earth.html

github上加载很慢 可以下载到底看看效果

 

转载于:https://www.cnblogs.com/zimuzimu/p/6256729.html

最后

以上就是粗犷洋葱为你收集整理的【原创】threejs实现一个全景地球介绍的全部内容,希望文章能够帮你解决【原创】threejs实现一个全景地球介绍所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(29)

评论列表共有 0 条评论

立即
投稿
返回
顶部