全景图共分为三种:

①球面全景图

利用一张全景图围成一个球,自身位置位于球体内。由于图片是矩形,所以最上和最下的缝合处很明显就能够看得出来。

球面全景图是最接近人眼的构建模式,若利用多个立面构建,拼接方法繁琐,性能消耗高。

因此,本文介绍的是上述通过一张全景图构成的球面全景图。

②立方体全景图

一个立方体,有六个面组成,所以就需要六张图片啦。自身的位置位于立方体中间。这也是最常见的全景图构建模式。

③柱状全景图

这个则是前两种构建模式的结合版啦。

开发方案对比:

代码实现:

1.球迷那全景图

<script src="js/three.min.js"></script>
<script src="js/photo-sphere-viewer.min.js"></script>

核心代码,就这么两行搞定全景demo

var PSV = new PhotoSphereViewer({
panorama: 'http://tassedecafe.org/wp-content/uploads/2013/01/parc-saint-pierre-amiens.jpg',
container: div,
time_anim: 3000,
navbar: true,
navbar_style: {
backgroundColor: 'rgba(58, 67, 77, 0.7)'
},
});  

 配置参数:

下面是该全景图插件的所有可用配置参数:

  • panorama:必填参数,全景图的路径。
  • container:必填参数,放置全景图的div元素。
  • autoload:可选,默认值为truetrue为自动调用全景图,false为在后面加载全景图(通过.load()方法)。
  • usexmpdata:可选,默认值为true,如果Photo Sphere Viewer必须读入XMP数据则为true
  • default_position:可选,默认值为{},定义默认的位置,及用户看见的第一个点,例如:{long: Math.PI, lat: Math.PI/2}
  • min_fov:可选,默认值为30,观察的最小区域,单位degrees,在1-179之间。
  • max_fov:可选,默认值为90,观察的最大区域,单位degrees,在1-179之间。
  • allow_user_interactions:可选,默认值为true,设置为false则禁止用户和全景图交互(导航条不可用)。
  • tilt_up_max:可选,默认值为Math.PI/2,向上倾斜的最大角度,单位radians。
  • tilt_down_max:可选,默认值为Math.PI/2,向下倾斜的最大角度,单位radians。
  • zoom_level:可选,默认值为0,默认的缩放级别,值在0-100之间。
  • long_offset:可选,默认值为PI/360,mouse/touch移动时每像素经过的经度值。
  • lat_offset:可选,默认值为PI/180,mouse/touch移动时每像素经过的纬度值。
  • time_anim:可选,默认值为2000,全景图在time_anim毫秒后会自动进行动画。(设置为false禁用它)
  • theta_offset:过时的选项,可选,默认值为1440,自动动画时水平方向的速度。
  • anim_speed:可选,默认值为2rpm,动画的速度,每秒/分钟多少radians/degrees/revolutions。
  • navbar:可选值,默认为false。显示导航条。
  • navbar_style:可选值,默认为{}。导航条的自定义样式。下面是可用的样式列表:
  • backgroundColor:导航条的背景颜色,默认值为rgba(61, 61, 61, 0.5)
  • buttonsColor:按钮的前景颜色,默认值为transparent
  • activeButtonsBackgroundColor:按钮激活状态的背景颜色,默认值为rgba(255, 255, 255, 0.1)
  • buttonsHeight:按钮的高度,单位像素,默认值为20
  • autorotateThickness:autorotate图标的厚度,单位像素,默认值为1
  • zoomRangeWidth:缩放的范围,单位显示,默认值50。
  • zoomRangeThickness:缩放的范围的厚度,单位像素,默认值1。
  • zoomRangeDisk:缩放范围的圆盘直径,单位像素,默认值为7。
  • fullscreenRatio:全屏图标的比例,默认值为3/4
  • fullscreenThickness:全屏图标的厚度,单位像素,默认值为2。
  • loading_msg:可选,默认值为Loading…,图片加载时的提示文字。
  • loading_img:可选,默认值为null,在加载时显示的图片的路径。
  • size:可选,默认值null,全景图容器的最终尺寸。例如:{width: 500, height: 300}
  • onready:可选值,默认值为null。当全景图准备就绪并且第一张图片显示时的回调函数。

3D全景漫游的更多相关文章

  1. 打造H5里的“3D全景漫游”秘籍

    近来风生水起的VR虚拟现实技术,抽空想起年初完成的“星球计划”项目,总结篇文章与各位分享一下制作基于Html5的3D全景漫游秘籍. QQ物联与深圳市天文台合作,在手Q“发现新设备”-“公共设备”里,连 ...

  2. 打造自己的3D全景漫游

    three.js 示例: ​ 打造H5里的"3D全景漫游"秘籍 - 腾讯ISUX ​ QQ物联星球计划 通过pano2vr直接将鱼眼全景图生成立体空间的六个面:也可通过Photos ...

  3. <Three.js>(第三节)全景漫游

    一.实验内容 通过上次实验,了解了Three.js创建场景的基本步骤.这一节,我们将通过Three.js实现全景漫游功能.如下图: 全景图是获取一个3D场景中的不同角度的图片,然后通过拼接.融合实现3 ...

  4. 轩辕展览-VR虚拟展厅设计如何实现全景漫游功能

    什么是在线3d漫游?如何在VR虚拟展厅设计之中实现3d漫游功能?让我们来分享3dVR虚拟展厅的在线漫游. 实际上,在线3d漫游就是通过3d仿真场景,使用鼠标和键盘在虚拟空间之中自由漫游,它可以从高空俯 ...

  5. 摸索js的3d全景

    先我在网上找到了一个例子,http://silali.vicp.net/three/emaple.html 完美实现3d全景,在详细查看这个例子后,发现他在手机上运行并不流畅,而且显不全并会卡顿. 我 ...

  6. 3D全景!这么牛!!

    如果你用过网页版的百度地图,你大概3D全景图浏览是一种怎样的酷炫体验:在一个点可以360度环顾周围的建筑.景色,当然也可以四周移动,就像身临其境. 全景图共分为三种: ①球面全景图 利用一张全景图围成 ...

  7. three.js全景漫游实践

    Hello 小伙伴们,如果觉得本文还不错,记得给个 star , 小伙伴们的 star 是我持续更新的动力!GitHub 地址 简介 全景图分两种 由六张正方形图片组成的SkyBox 一整张的宽高比为 ...

  8. ThreeJs 3D 全景项目开发总结

    本文来自网易云社区 作者:唐钊 项目背景 那是在一个毫无征兆的下午,我还沉浸在 vue 的世界中,突然编辑跑过来说N的新官网想做一些3D全景的东西,一开始其实我的内心是拒绝的,一是没怎么实质性做过 W ...

  9. 3D全景之ThreeJs

    3D全景之ThreeJs 一.前言 随着H5越来越多的被应用到各个领域,3D也越来越频繁的出现在各个H5案例中,今天我们就来讨论一下3D全景的实现. 据百度百科上介绍:720全景是视角超过人的正常视角 ...

随机推荐

  1. UVALive 5983 二分答案+dp

    想了很久都想不出怎么dp,然后发现有些例子,如果你开始不确定起始值的话,是不能dp的,每种状态都有可能,所以只能二分一个答案,确定开始的val值,来dp了. #include <cstdio&g ...

  2. 宋宝华:swappiness=0究竟意味着什么?

    http://mp.weixin.qq.com/s/BixMISiPz3sR9FDNfVSJ6w 本文解释swappiness的作用,以及swappiness=0究竟意味着什么. 内存回收 我们都知道 ...

  3. JNA-调用win32 Dll文件

    1. 描述备注 参考地址1 JNA示例代码 1.1 JNA工作原理 JNA是建立在JNI技术基础之上的一个Java类库,它使您可以方便地使用java直接访问动态链接库中的函数. 原来使用JNI,你必须 ...

  4. c#读取word内容,c#提取word内容

    Post by 54admin, 2009-5-8, Views:575 1: 对项目添加引用,Microsoft Word 11.0 Object Library 2: 在程序中添加 using W ...

  5. 使用AlarmManager定期执行工作

    新建一个Service来模拟后台执行的程序,PollingService.java: package com.ryantang.rtpollingdemo; import android.app.No ...

  6. 从零开始的全栈工程师——js篇2.13(字符串与数组的方法)

    基类Object的子类有 Function  Array  Number  Boolean  String  Date  Math  RegExp 函数 数组 数字 布尔 字符串 日期 算数 正则 都 ...

  7. [WPF][ListBox]鼠标拖拽多选,(Shift Key、Ctrl Key多选有效)(转)

    <ListBox Name="listBox" SelectionMode="Extended"> <ListBox.Resources> ...

  8. centos6.5_64bit-nginx安装部署

    1.配置防火墙,开启80端口.3306端口 vim /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dpor ...

  9. LeetCode Valid Palindrome 有效回文(字符串)

    class Solution { public: bool isPalindrome(string s) { if(s=="") return true; ) return tru ...

  10. co-dialog弹出框组件-版本v2.0.1

    具体案例查看co-dialog:https://koringz.github.io/co-dialog/index.html 2.0.1版本优化项,代码压缩,修复PC和移动端自适应,修复显示弹出框浏览 ...