我是靠谱客的博主 爱笑星星,这篇文章主要介绍krpano 陀螺仪 相关问题,现在分享给大家,希望可以做个参考。

首先 陀螺仪的使用要求地址必须是 https

本地测试时可以通过更改vue.config.js
(如果没有vue.config.js那就新建一个)

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// vue.config.js module.exports = { devServer: { proxy: { '/api': { target: 'url', changeOrigin: true, pathRewrite: { '^/api': '' } } }, // 此处开启 https **https: true** } }

在xml文件中也要注意
核心代码主要有以下

复制代码
1
2
3
4
5
6
7
8
9
<plugin name="gyro" url="%SWFPATH%/plugins/gyro2.js" enabled="false" sensor_mode="0" sensor="0" friction="0.9" softstart="1" />

各个属性的值在以下

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<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中写方法用按钮触发

复制代码
1
2
3
this.krpano.call("switch(plugin[gyro].enabled);"); //switch(plugin[陀螺仪标签名].enabled);用来切换陀螺仪enable

第四就是我在触发陀螺仪之后发现很严重的一个问题就是抖动

我先后调整了很多参数,发现比较重要的几个参数有

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部