概述
首先 陀螺仪的使用要求地址必须是 https
本地测试时可以通过更改vue.config.js
(如果没有vue.config.js那就新建一个)
// vue.config.js
module.exports = {
devServer: {
proxy: {
'/api': {
target: 'url',
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}
},
// 此处开启 https
**https: true**
}
}
在xml文件中也要注意
核心代码主要有以下
<plugin name="gyro"
url="%SWFPATH%/plugins/gyro2.js"
enabled="false"
sensor_mode="0"
sensor="0"
friction="0.9"
softstart="1"
/>
各个属性的值在以下
<plugin name="gyro"
devices="html5"
keep="true"
url="gyro2.js"
//引入插件
enabled="false"
//是否启用陀螺仪
camroll="true"
//根据设备旋转调整观看位置
friction="0.0"
0.0-0.99或者auto
摩擦力,auto和zoom/fov/frame-rate有关
touch_mode="full"
off(关闭)/horizontaloffset(横向)/full(全部)/disablegyro(),触摸方式
sensor_mode="1"
传感器类型
softstart="0.5"
启用陀螺时,方向改变的时间,为0将立即使用gyro-tracked值
autocalibration="false"
自动校准陀螺仪
onavailable=""
onunavailable=""
onenable=""
ondisable=""
/>
第二就是在xml文件中,如果有scene标签,则plugin必须被scene标签包裹否则不生效
第三就是默认enable为true有可能会影响开场动画效果建议js中写方法用按钮触发
this.krpano.call("switch(plugin[gyro].enabled);");
//switch(plugin[陀螺仪标签名].enabled);用来切换陀螺仪enable
第四就是我在触发陀螺仪之后发现很严重的一个问题就是抖动
我先后调整了很多参数,发现比较重要的几个参数有
friction=""
//数值在0.0-0.99之间,数值越大摩擦力越大,摩擦力大就可以用来降低陀螺仪的灵敏度
sensor_mode="0"
//sensor_mode:传感器类型
//0 =直接使用最新的可用的传感器数据。 没有内插或外推法。 根据sensor-time-intervals的浏览器 运动可以是不平稳的或平滑。
//1 =最新之间顺利插入 可用的传感器数据。 这将给一个非常光滑但延迟运动。
//2 =预测设备传感器数据之间的旋转,然后插入。
//3 =推断最新可用的传感器数据 当前帧的时间。 这将给一个快速响应和平滑运动,但可以有抽搐 当外推/预测数据和实际运动不匹配。
//4 =预测当前帧的旋转装置。 这将给一个快速响应和平滑运动,但可以有抽搐 当外推/预测数据和实际运动不匹配。
//5 =预测设备旋转和推断 传感器数据从最新的事件当前帧时间。
//这个参数也相对重要,除了0跟1之外,其余的都会有很强烈的抖动问题,0最平滑
sensor=""//最重要的一个参数
//默认是1,但是需要设置成0才能防止陀螺仪的灵敏度过高以及抖动的问题
//定义用于设备移动跟踪的浏览器事件:
**//0 - deviceorientation 事件**
//这里传感器融合将由浏览器本身完成。
//不幸的是,来自此事件的数据在许多 Android 设备和 Android 浏览器中存在错误或错误(缓慢、不准确、错误)。
**//1 - devicemotion事件(默认)**
//此处传感器融合将由 krpano 完成。
//浏览器提供来自加速度和陀螺仪传感器的原始数据,krpano 将它们组合起来以获得最终的设备旋转:
//陀螺仪数据非常快速和准确,但陀螺仪传感器仅测量相对旋转,因此随着时间的推移它会偏离真实的物理方向。
//为了补偿这种漂移,使用了加速度传感器。该传感器测量地球的重力加速度,可用作绝对参考。
//但是加速度数据非常嘈杂,它只能用于检测“倾斜”旋转(向左、向右、向上或向下倾斜)——加速度无法检测到围绕设备本身的旋转,为此需要陀螺仪数据。
//因此来自两个传感器的数据将被组合/融合。加速度数据将被低通滤波并用作慢速“稳定”和陀螺仪数据,以便在各个方向快速准确地移动。
//使用 devicemotion 事件(设置传感器 = 1)是默认的,通常应该没有必要或好处使用 deviceorientation 事件,除非可能是一些极端的浏览器错误......
//注 - 在 iOS 13.4/Safari 13.1 中,devicemotion 事件已损坏。因此,在这些系统上,传感器的默认值 设置为 0 以使用 deviceorientation 事件(正在工作)。
最后有一个问题就是需要注意krpano的版本与陀螺仪文件gyro2.js文件的版本是否合适
以上
最后
以上就是爱笑星星为你收集整理的krpano 陀螺仪 相关问题的全部内容,希望文章能够帮你解决krpano 陀螺仪 相关问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复