Cardbord结合MD使用
在做VR项目中开始参考的是库https://github.com/ashqal/MD360Player4Android,这个库是对初学vr的很有帮助,基本能满足vr开发需求,对于项目其他需求也可以很好的参考进行扩展,但MD中使用的是Sensor.TYPE_ROTATION_VECTOR旋转向量传感器,其坐标系具有以下特点:
X 定义为向量积 Y x Z。它是以设备当前位置为切点的地球切线,方向朝东。
Y 是以设备当前位置为切点的地球切线,指向地磁北极。
Z 与地平面垂直,指向天空。
但在使用过程中可能是我对api不是十分理解,没有获取到初始角度方位角即欧拉角,有些同学可能会说用姿态传感器Sensor.TYPE_ORIENTATION可以得到,姿态传感器只能得到运动过程中的变化了得角度
所以结合https://github.com/substarry/VRPlayer项目使用cardboard的传感器,其坐标系与上图一致
其使用也十分简单,导入cardboard.jar包,在MDVRLibrary中实例化
headTracker= HeadTracker.createFromContext(builder.activity);
在MD360Render中使用 headTracker.startTracking();即可获取headview
headview中包含了很多信息,其中就有我们所需的初始方位角
![](https://img.haomeiwen.com/i2041721/ec03f3973ecb7fae.png)
有了方位角就可以做很多事情了,例如低头显示头控菜单,抬头隐藏等等
网友评论