Qualcomm_Snapdragon_VR_SDK SvrPluginAndroid脚本简介(10)

原创 2018年04月12日 14:56:33

本文将继续介绍SvrPluginAndroid脚本中的其他代码:


	public override int GetPredictedPose(ref Quaternion orientation, ref Vector3 position, int frameIndex)
	{
        orientation.z = -orientation.z;
        position.x = -position.x;
        position.y = -position.y;

        int rv = SvrGetPredictedPose(ref orientation.x, ref orientation.y, ref orientation.z, ref orientation.w,
							ref position.x, ref position.y, ref position.z, frameIndex);

		orientation.z = -orientation.z;
        position.x = -position.x;
        position.y = -position.y;

        return rv;
	}

	public override DeviceInfo GetDeviceInfo()
	{
		DeviceInfo info = new DeviceInfo();

		SvrGetDeviceInfo (ref info.displayWidthPixels,
		                  ref info.displayHeightPixels,
		                  ref info.displayRefreshRateHz,
		                  ref info.targetEyeWidthPixels,
		                  ref info.targetEyeHeightPixels,
		                  ref info.targetFovXRad,
		                  ref info.targetFovYRad,
                          ref info.targetFrustumLeft.left, ref info.targetFrustumLeft.right, ref info.targetFrustumLeft.bottom, ref info.targetFrustumLeft.top, ref info.targetFrustumLeft.near, ref info.targetFrustumLeft.far,
                          ref info.targetFrustumRight.left, ref info.targetFrustumRight.right, ref info.targetFrustumRight.bottom, ref info.targetFrustumRight.top, ref info.targetFrustumRight.near, ref info.targetFrustumRight.far);

		return info;
	}

GetPredictedPose方法的作用是获取当前帧的位置已经朝向的四元数数据。

传入的参数包括orientation position 以及frameIndex。

其中orentation被设置成ref类型的变量,调用该方法后会返回orentation的值。

orentation的值表示当前VR设备的头部朝向四元数数据。

position同样被设置成ref类型,表示当前头部的6Dof数据。

frameIndex表示的是当前运行的帧数。

根据这三个参数,GetPredictedPose方法会调用底层的SvrGetPredictedPose方法,并返回当前frameIndex帧数的头部朝向以及位置数据。

GetDeviceInfo方法是获取当前的设备信息,具体详细的代码逻辑在后续章节中介绍。


Qualcomm_Snapdragon_VR_SDK SvrPluginAndroid脚本简介(12)

本文将介绍SvrPluginAndroid脚本中的Submit方法,该方法的作用是渲染左右眼图像,是SvrPlugin中VR模式实现的核心代码。 public override void Sub...
  • CONGLF
  • CONGLF
  • 2018-04-12 15:08:57
  • 88

Qualcomm_Snapdragon_VR_SDK SvrPluginAndroid脚本简介(9)

public override void SetFoveationParameters(float focalPointX, float focalPointY, float foveationGai...
  • CONGLF
  • CONGLF
  • 2018-04-12 14:48:16
  • 93

Qualcomm_Snapdragon_VR_SDK SvrPluginAndroid脚本简介(14)

public override void Shutdown() { IssueEvent (RenderEvent.Shutdown); base.Shutdow...
  • CONGLF
  • CONGLF
  • 2018-04-12 15:19:46
  • 84

Qualcomm_Snapdragon_VR_SDK SvrPluginAndroid脚本简介(13)

public override void SubmitFrame(int frameIndex, float fieldOfView, int frameType)  {         int i;...
  • CONGLF
  • CONGLF
  • 2018-04-12 15:15:31
  • 88

Qualcomm_Snapdragon_VR_SDK SvrPluginAndroid脚本简介(1)

SvrPluginAndroid脚本继承了基类SvrPlugin脚本,适用与Android的运行环境,实现了SvrPlugin中的关键方法,具体的代码结构如下:using UnityEngine; u...
  • CONGLF
  • CONGLF
  • 2018-03-14 14:10:43
  • 343

Qualcomm_Snapdragon_VR_SDK SvrPluginAndroid脚本简介(15)

在SvrPluginAndroid中还提供了一些手柄的操作方法。Qcom VRSDK中手柄兼容的是Ximmerse手柄,方便开发这快速的连接手柄开发相关程序。具体的代码如下: //----------...
  • CONGLF
  • CONGLF
  • 2018-04-12 15:23:08
  • 72

Qualcomm_Snapdragon_VR_SDK SvrPluginAndroid脚本简介(7)

本文将继续介绍SvrPluginAndroid的相关代码: public override IEnumerator BeginVr(int cpuPerfLevel, int gpuPerfLevel...
  • CONGLF
  • CONGLF
  • 2018-04-12 14:31:14
  • 77

Qualcomm_Snapdragon_VR_SDK SvrPluginAndroid脚本简介(8)

public override void EndVr() { base.EndVr(); IssueEvent (RenderEvent.EndVr); } pu...
  • CONGLF
  • CONGLF
  • 2018-04-12 14:41:00
  • 59

Qualcomm_Snapdragon_VR_SDK SvrPluginAndroid脚本简介(6)

前几篇文章中已经系统介绍了SvrPluginAndroid脚本中调用的dll底层方法。细心的读者可以观察到所有的方法中都是private 的私有方法。 于是在SvrPluginAndroid中在此基础...
  • CONGLF
  • CONGLF
  • 2018-03-22 14:29:34
  • 320

Qualcomm_Snapdragon_VR_SDK SvrPluginAndroid脚本简介(16)

本文将对Qcom VR SDK中手柄相关的代码做简单的讲解。 //-------------------------------------------------------------------...
  • CONGLF
  • CONGLF
  • 2018-04-12 15:26:50
  • 73
收藏助手
不良信息举报
您举报文章:Qualcomm_Snapdragon_VR_SDK SvrPluginAndroid脚本简介(10)
举报原因:
原因补充:

(最多只允许输入30个字)