關於google vr sdk的具體使用,傳送門 Gvr SDK for Unity 分析(一)html
Google Daydream平臺已經整合進Google VR SDKjava
本文環境:Unity5.3.1 x64 , Gvr SDK 0.8 , VS2013android
單詞翻譯ios
stereo:立體的; pose:姿式; gaze:凝視,注視;Reticle:十字線,準星 ;Responder:應答者;oracle
provider:提供者;ProviderFactory:工廠類; Emulator:仿真程序,仿真器ide
Perspective:透視,3D相機;Orthographic:正交,2D相機;函數
Scripts\工具
功能:檢測用戶與系統的交互(經過觸發或控制器)ui
實現UnityEngine.UI.BaseInputModule接口(BaseInputModel繼承自UnityEngine.UI.UIBehaviour)google
因此uGUI的元素在被選中或trigger ,touching 觸發的事件,能夠傳遞出來。
並排立體呈現模擬,有Left eye,Right eye,每個控制 stereo 的單個camera
用戶頭部跟蹤模擬,提供頭部跟蹤的數據給camera,在頭部運動過程當中它附着的transform屬性也會同步發生改變。
模擬鏡頭對立體畫面的失真校訂
清除整個屏幕。
原理:
Clear Flags 肯定了屏幕哪些部分將被清除,這是爲了方便使用多個攝像機渲染不一樣的遊戲元素,每一個相機在渲染時都會存儲顏色和深度信息。
屏幕的未繪製部分是空的,默認狀況下會顯示天空盒。
當你使用多個相機時,每個相機都將本身的顏色和深度信息存儲在緩衝區中,還將積累每一個相機大量的的渲染數據。當場景中任何特定的相機進行渲染時,你能夠設定清除標記來清除緩衝區信息的不一樣集合
camera.clear flags=Solid Color (純色)表示屏幕上的任何空的部分將顯示當前相機的背景顏色。
資料參考:Unity 3D-- 攝像機Clear Flags和Culling Mask屬性用途詳解
GvrProfile.cs
能夠對vr view進行特殊的配置
Pose3D.cs
綁定在MainCamera上,兩個GvrEye渲染stereo view 內容的控制器
StereoRenderEffect.cs
空間音頻渲染,負責Gvr音頻類和系統原生音頻系統進行通訊
GvrAudioListener.cs
GVR音頻監聽器組件,可提升音頻監聽器,提供先進的空間音頻功能。
GvrAudioRoom.cs
GVR音頻室組件,對綁定此組件的gameobject,模擬房間的環境影響
audiosource組件加強,給audiosource提供先進的空間音頻功能。
GVR Controller API的主入口
包括:自動陀螺漂移校訂,加速器事件監聽器,touch事件監聽器,指南針事件監聽器,按鈕事件監聽器
該目錄下有如下文件:
Class that can perform gaze-based selection, as a simple alternative to the more complicated path of using GazeInputModule and the rest of uGUI.
能夠執行準星選中的操做,比起使用gazeinputmodule ,它做爲一個簡單的替代
當用戶凝視任何對象時,在該對象前繪製一個十字準星
包括各類平臺及運行環境的模擬
爲GazeInputModule提供接口,接口中定義輸入輸出的處理函數
主要邏輯處理在GazeInputModule.UpdateReticle中
if (gazeObject == previousGazedObject) { if (gazeObject != null) { gazePointer.OnGazeStay(camera, gazeObject, intersectionPosition, isInteractive); } } else { if (previousGazedObject != null) { gazePointer.OnGazeExit(camera, previousGazedObject); } if (gazeObject != null) { gazePointer.OnGazeStart(camera, gazeObject, intersectionPosition, isInteractive); } }
爲GvrGaze提供接口,接口中定義了凝視的觸發事件
三個方法 OnGazeEnter OnGazeExit OnGazeTrigger 當準星對準任何Gameobject時的處理,具體請查看GvrGaze.cs中的HandleGaze
Resources\SolidColor.shader 純色填充
Resources\UnlitTexture.shader 無光照帖圖
Distortion\GvrDistortion.cginc 扭曲shader
Resources\UI\GvrReticleShader.shader 準星,十字線Shader
Resources\GvrAudioMixer.mixer 音頻文件
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="22" />
Google.ProtocolBuffers.dll
android目錄下的jar包提供android的API給unity調用
Plugins\Android\unity gvr activity.aar
Plugins\Android\gvr_android_common.aar
Plugins\Android\libs\armeabi-v7a\libgvrunity.so
*.aar是一種壓縮文件,和*.jar相似,不過它能夠包含資源文件,例如圖片、drawable、xml資源
Java反編譯工具 JD:http://jd.benow.ca/
若是運行JD-GUI報下圖錯誤
1. 請下載安裝jre 1.7.0
2. 把jd-gui.exe拷貝到jre安裝路徑下,就能夠雙擊jd-gui.exe運行啦
Java7存檔下載:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html?ssSourceSiteId=otncn
Java 存檔:http://www.oracle.com/technetwork/java/javase/archive-139210.html
GVR 官網API :Google VR for Unity SDK Script Reference
Set up a Daydream Development Kit : https://developers.google.com/vr/concepts/dev-kit-setup
Google、Unity等公司專家深度解讀VR平臺Daydream:https://yq.aliyun.com/articles/54066