利用threejs实现3D全景图

threejs下载位置:http://www.threejs.org
我在Facebook上看到Facebook实现了3D全景图,然后,一直很好奇,最后,我发现threejs里面有一个库竟然可以实现,一下我贴出代码:

    three.js css3d - panorama        body {            background-color: # 000000;            margin: 0;            cursor: move;            overflow: hidden;        }        a {            color: # ffffff;        }        # info {            position: absolute;            width: 100%;            color: # ffffff;            padding: 5px;            font-family: Monospace;            font-size: 13px;            font-weight: bold;            text-align: center;            z-index: 1;        }    var camera, scene, renderer;    var geometry, material, mesh;    var target = new THREE.Vector3();    var lon = 90, lat = 0;    var phi = 0, theta = 0;    var touchX, touchY;    init();    animate();    function init() {        camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 1, 1000 );        scene = new THREE.Scene();/  次数是重点说明的 * 这个sides对应的是六张图位于立体坐标轴内的位置,里面的position又包含x,y,三个轴 * 然后ratation是三个轴上的变换 */         var sides = [            {                position: [ 512, 0, 0 ], // 1                rotation: [ 0, -Math.PI / 2, 0 ]            },            {                position: [ -512, 0, 0 ], // 2                rotation: [ 0, Math.PI / 2, 0 ]            },            {                position: [ 0,  512, 0 ], // 3                rotation: [ Math.PI / 2, 0, Math.PI ]            },            {                position: [ 0, -512, 0 ], // 4                rotation: [ - Math.PI / 2, 0, Math.PI ]            },            {                position: [ 0, 0,  512 ], // 5                rotation: [ 0, Math.PI, 0 ]            },            {                position: [ 0, 0, -512 ], // 6                rotation: [ 0, 0, 0 ]            }        ];        var canvas = document.createElement('canvas');        var image = document.createElement('img');        image.src = 'picture/360photos.jpg'; // 画图,这里引入的这张图片,是一张图上集合了6张图片        image.height = 6144;        image.width = 1024;        canvas.width = 1024;        canvas.height = 1024;        // 这里有判断image.onload,这里是判断创建的image节点是否把引入的图片加载进来            image.onload = function() {                for ( var i = 0; i 

以上,我把重要的说明点都写上了注释,然后,注意,我这里的图片是去facebook上下载下来的,我把Facebook上的图片手动进行了左右翻转实现的程序,如果不需要手动翻转,如果是渲染Facebook上的图片的话,需要把Facebook的图片用程序进行翻转再分割才能渲染出正常的图片,否则渲染出来的全景是不正常的。
我下面附上的图很大,宽度是1024像素的,然后高度是1024像素*6;原图是这张图的左右翻转。
下面,我附上图,此图来自简书上传的,可能会有盗链导致加载不出来:

关键字:three.js, 程序员, facebook, threejs

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部