GoogleVR插件简介

作者: UnityPlane | 来源:发表于2018-02-27 11:16 被阅读96次

Unity插件包包含以下内容:
脚本
· Cardboard.cs -本地代码虚拟现实设备的单例模式连接。
· CardboardEye.cs -用于立体相机的视角(eye view)/投影
· CardboardHead.cs -用于虚拟现实眼镜的头部视图的变换
· GazeInputModule.cs -通过目光(注视点)和点击触发控制uGUI元素。
· Pose3D.cs -包含一个旋转和平移。
· RadialUndistortionEffect.cs -图像效果虚拟现实校正(双屏)。
注:这里的distortion我理解为利用双屏变换模拟显示,后同。
· StereoController.cs -控制非立体显示(全屏显示)还是立体显示(分屏显示)。
注:这里的mono/ stereo我理解为全屏显示(VR模式关)与分屏显示(VR模式开),后同
编辑器脚本
· CardboardEditor.cs - Cardboard对象的自定义参数。
· StereoControllerEditor.cs -添加了一个按钮来更新立体双眼摄像头。
Prefabs
· CardboardMain -一个可直接替代的主相机对象。
· CardboardHead -一个可直接替代的其他摄像机。
· CardboardAdapter -将立体渲染添加到现有的摄像头。
Shaders
· RadialUndistortionEffect -着色器虚拟现实校正(双屏)。
演示
· DemoScene -插件的简单演示。
Legacy
这些特性是为了支持现有项目在老版本的Unity上也可以运行,是为统一版本而设计的。
· CardboardGUI.cs -采集OnGUI到一个纹理。
· CardboardGUIWindow.cs -在场景中的网格上显示OnGUI纹理。
· CardboardGUIMouse.cs -用用户的目光控制鼠标; 绘制鼠标指针。
· CardboardGUI Prefab -使得可以很容易的在立体视角中通过OnGUI实现显示和交互。
· SkyboxMesh.cs -将一个摄像头的skybox转换为一个运行时的网格纹理。
· StereoLensFlare.cs -支持方向的镜头耀斑但是存在一定视差。
· SkyboxMesh Shader-不发光的纹理背景。
· GUIScreen Shader-具有透明度的不发光纹理覆盖。
脚本
这部分包含单个脚本的特定目的和他们如何一起工作,无论是在使用提供的预制件时(prefab)还是如果您自己添加到自己的场景。
Cardboard.cs
提供了去访问底层虚拟现实设备的方法,这是在本地代码中实现的。应该只在其中一个场景中。如果需要的话,一个实例会在运行时产生,如果你想自定义它的初始属性,你也可以通过编辑器添加一个。
枚举
enum Eye { Left, Right }
两只眼睛之间的区别(左眼右眼)。
enum Distortion { Distorted, Undistorted }
检索投影和视口(Viewport)属性,确定您是希望通过Cardboard眼镜来观看时所需的图像(Distorted,双屏)或如果没有眼镜的存在时所需的图像(Undistorted,全屏)。(注
视口(ViewPort)是计算机图形学里面的重要概念之一,是与设备相关的一个矩形区域,坐标单位是与设备相关的,简单理解就是你在显示屏幕里能够看到的显示内容.)
属性(Properties)
Cardboard SDK [static, read only]
指向该脚本的单一全局实例。如果不是已经存在的话,该实例是按需创建的。
bool DistortionCorrection [default true]
是否虚拟现实校正由插件进行。如果被禁用,则它是由应用程序执行任何它想执行的虚拟现实校正,如果有的话。
bool VRModeEnabled [default true]
确定场景是非立体显示(全屏显示)还是立体显示(分屏显示)。指定这个字段可以自己控制分屏/全屏
bool TapIsTrigger [default false]
当启用时,Cardboard把一个屏幕点击(screen tap)视为一个触发(trigger pull)进行处理。(注
感觉这里说的trigger是扣Cardboard侧面的磁铁)
bool EnableAlignmentMarker [default true]
启用或禁用立体视图之间呈现的垂直线,以帮助用户将手机屏幕对准Cardboard眼镜的中线。
bool EnableSettingsButton [default true]
启用或禁用Cardboard的设置按钮。它显示为立体视图之间的空白上的一个齿轮图标。这个设置按钮打开谷歌Cardboard app,允许用户配置他们的个人设置和Cardboard的耳机参数。
float NeckModelScale [0..1, default 1]
原生SDK将使用一个颈部偏移的头部跟踪,从而实现一个更逼真的人的头部位置模型。
该控制确定偏移的比例因子。要关闭颈部模型,将其设置为0,将其全部打开,设置为1。中间值可用于动画从开到关,反之亦然。
bool AutoDriftCorrection [default true]
当启用时,会进行陀螺漂移读数的估计和去除(自动漂移修正)。
bool Triggered [read only]
判断是否触发了Cardboard的触发器。在每次触发后为一个十分精确的完整帧。(注* 感觉这里说的trigger是扣Cardboard侧面的磁铁)
bool Tilted [read only]
判断Cardboard使用者是否呈倾斜在其一侧的状态。在每次倾斜后为一个十分精确的完整帧。一些应用程序把它视为一个“返回”或“退出场景”的动作。
RenderTexture StereoScreen
当虚拟现实模式被启用(VR Mode enable)时,立体相机会自动的并排的渲染在这一目标上。每一帧,其结果是经过虚拟现实校正(分屏)的,然后显示出来。请注意,当VR模式被禁用(VR Mode disable)或不支持虚拟现实校正,此属性将返回null。
该属性通常是通过Cardboard自动初始化的,但如果你想自定义纹理,你可以指派它到你的代码中。
Pose3D HeadPose [read only]
当前帧的头部姿态,将头部跟踪系统作为返回值。
Pose3D EyePose(Cardboard.Eye eye)
指定的眼睛相对于头部的姿态。
Matrix4x4 Projection(Cardboard.Eye eye, Distortion distortion
[default Distorted])
当前帧的投影矩阵,用于给定的眼睛。该矩阵是一个分别具有1米和1千米的近端和远端剪裁平面的离轴透视投影。 CardboardEye 脚本负责采用调整这个特殊相机的矩阵。
Rect Viewport(Cardboard.Eye eye, Distortion distortion
[default Distorted])
指定眼的摄像机会渲染成屏幕空间的视口(Viewport),在虚拟现实的情况下,这将是左或右半边的stereoscreen渲染纹理。在非虚拟现实的情况下,它指的是屏幕上可以看到实际看到的矩形区域。(注* 视口(ViewPort)是计算机图形学里面的重要概念之一,是与设备相关的一个矩形区域,坐标单位是与设备相关的,简单理解就是你在显示屏幕里能够看到的显示内容.)
Vector2 ComfortableViewingRange [read
only, default 1-100000 meters]
在现实世界中,一个可以通过设备舒适地观看一个物体的最小和最大距离。
事件
Action OnTrigger
每当触发(Trigger)发生时发生该事件。如果 TapIsTrigger 被启用,那么当一个屏幕点击(screen tap)发生时也会发生该事件。(注* 感觉这里说Trigger的是扣Cardboard侧面的磁铁)
Action OnTilt
每当使用者呈倾斜在其一侧的状态(Tilt)发生该事件。如果 TapIsTrigger被启用,退出键也会成为需要注意的问题:在Android上,Unity会将后退按钮(BackButton)视为退出键。
方法
void UpdateState()
从手机中读取最新的跟踪数据。这必须在访问任何的姿态信息和矩阵之前调用。
每帧多次调用是允许的:后续调用仅仅产生第一次调用的缓存结果。为了最小化延迟,如果可能的话,应该首先在一帧的稍后进行第一次调用(例如,in LateUpdate)
bool Recenter()
使头部追踪器回到中心位置,使手机的当前方向变为正方向。
void CreateStereoScreen()
创建(或重新创建)StereoScreen纹理并使用合理的默认设置。如果不支持虚拟现实校正则没有效果。

相关文章

网友评论

    本文标题:GoogleVR插件简介

    本文链接:https://www.haomeiwen.com/subject/mippxftx.html