LinkVR 開發者手冊

 

詳細版,以及LinkVR軟件和unity插件php

連接:https://pan.baidu.com/s/15xQ7ZGMkJftpJyj4AKeyCg
提取碼:8k67 編程

 
1 版本要求
Unity Pro 2017.3.0 及以上版本(目前暫支持 2017.3-2018.2 版本, 2018.3 及以上版本會盡快支持)
2 使用前須知
1. 打開 LinkVR Unity SDK -> MonoReplacer 文件夾
2. 運行 LinkVR 受權 mono 替換工具 .exe
2.1 Mono 替換工具
3. 替換當前 Unity 版本的 Mono 文件。
1) 點擊瀏覽,會出現瀏覽文件夾的提示框
2) 選擇 Unity.exe 所在的 Editor 文件夾
3) 點擊替換,直到完成替換
2.2 啓動 Mono 替換工具 上海曼恆數字技術股份有限公司
2.3 選擇 Unity Editor 文件夾
2.4 點擊替換
2 上海曼恆數字技術股份有限公司
3
4. 完成替換 Unity Mono 後,在新建或打開當前版本 Unity 工程時,會提示須要受權碼進行受權,
請聯繫客服索取或登陸 https://www.gvrtalk.com/form_linkvr.php 申請 60 天試用。
2.5 受權激活 上海曼恆數字技術股份有限公司
4
3 導入插件
1. 受權完成後,打開 Unity ,依次點擊 Assets -> Import Package -> Custom Package... ,選擇
LinkVRSystem_v2.2.0.unitypackage 文件,若您沒有該插件,請聯繫客服索取。
3.1 導入 LinkVR 插件 上海曼恆數字技術股份有限公司
5
2. 彈出導入界面,勾選全部文件,點擊「 Import 」按鈕。
3.2 導入界面
3. 在項目資源文件夾中會出現 LinkVR 文件夾,其中 Examples 文件夾中的場景是 LinkVR 的案例場景,
Document 文件夾中的文檔是 LinkVR API 文檔。
3.3 資源文件夾內容 上海曼恆數字技術股份有限公司
6
4 使用 LinkVR
注意:在工具欄中 Tools -> LinkVR 中能夠進行項目設置, LinkVR 在插件導入時會自動進行一次項目設
置,若您有特殊需求,不但願項目設置被自動更改,請不勾選 Automatically Check And Set Project Settings
默是勾選狀態。
Automatically Check And Set Project Settings 表示自動檢查並進行項目設置;
Set Project Settings 表示手動設置一次項目設置。
4.1 修復項目設置
設置的內容以下(詳情可查看 LinkVRSettings.cs 腳本):
1) PlayerSettings 中的顯示分辨率對話框選項設置爲 Disabled
2) PlayerSettings 中的捕獲單屏設置爲 false
3) PlayerSettings 中的 MTRendering (多線程渲染)設置爲 false
4) PlayerSettings 中的 Windows 圖形渲染 API 設置爲 OpenGLCore Direct3D 11 ,默認是將
OpenGLCore 放首位。
5) PlayerSettings 中的 VR 支持打開,並將設備設置爲 Stereo Display (non head-mounted)
6) QualitySettings 中的抗鋸齒屬性設置爲 Disabled
7) SyncUploadBufferSize 的值設置爲 4
注:若是 Unity 工程在發佈時選擇的是採用 OpenGLCore 渲染,務必將 QualitySettings 中的抗
鋸齒屬性設置爲不開啓, LinkVR 的雙目渲染方式與 Unity MSAA 硬件抗鋸齒不兼容,致使
應用程序在打開後黑屏。若是 Unity 工程在發佈時選擇的是採用 Direct3D 11 渲染,在顏色空
間設置項中務必選擇 Gamma 選項, Linear 顏色空間會破壞立體渲染,這是 Direct3D 的一個
限制。另外,在 Windows7 系統中,採用 Direct3D 11 渲染的應用程序不支持主動立體,在
Windows10 系統中,兩種渲染方式都支持主動立體。 LinkVR Unity SDK 默認採用並推薦的渲染
方式是 OpenGLCore ,由於它在系統方面的兼容性更好。若是項目須要,您能夠不勾選
Automatically Check And Set Project Settings ,並手動設置爲採用 Direct3D 11 渲染,但須要知
曉其在主動立體方面的限制。 上海曼恆數字技術股份有限公司
7
4.1 LinkVR 系統主入口
1. Hierarchy 面板中選中 FPSController -> LinkVRSystemRoot 物體,可見 LinkVRSystem 腳本,該腳
本主要有四個公有字段。
4.2 LinkVRSystem
1) isDeveloperMode (是不是開發者模式)
它的做用是能夠模擬沉浸式追蹤環境,便於開發者進行開發和調試。詳情參考 5.1 開發者模
2) designatedConfigPath (指定的配置文件)
它的做用是案例內容在啓動後針對指定的配置文件進行相應結構的生成和追蹤系統的綁定,
是整個 LinkVR 系統中最核心的部分。
選擇指定的配置文件有兩種方式:
點擊 designatedConfigPath 字段後邊的「 Choose 」按鈕,選擇配置文件(建議將配置文
件放到 StreamingAssets 文件夾中,不然請在打包以後將配置文件手動拷貝到對應的文件
夾內)。
LinkVR 客戶端軟件內生成並選擇對應的配置文件後直接啓動項目案例,配置文件路徑
做爲命令行參數傳遞給項目案例,項目案例讀取配置文件路徑,生成相應的結構並綁定
追蹤系統。 上海曼恆數字技術股份有限公司
8
3) cameraTemplete (相機模板)
它的做用是能夠設置案例內容運行時動態生成的相機的模板,方便使用相機特效和其餘所需
的組件或腳本。
具體作法爲:
根據須要更改 FPSController 物體下的 FirstPersonCharacter 物體上的相機組件的參數設置。
根據須要在 FirstPersonCharacter 物體上掛載所需的組件或腳本。
這樣,在案例內容運行後, LinkVR 系統將根據此相機模板動態複製並生成 LinkVR 系統的相機。
固然,您也能夠不將相機模板指定爲 FirstPersonCharacter 物體,能夠新建一個相機物體,根
據須要進行相機參數的設置和組件或腳本的掛載,將相機拖到資源文件夾中做爲 prefab 預製
體,而後將該預製體拖到 LinkVRSystem 腳本的 cameraTemplate 屬性上。
4) rootTransform (根節點)
它是採起第一人稱視角時的人物 Body ,須要掛載 CharacterController 組件和
LinkVR.Characters.FirstPersionController 腳本,默認的第一人稱就是它的父物體。
2. Assets –> StreamingAssets -> config.xml 文件中,有四個 LinkVR 相關的配置參數。
1) argsConfig (案例內容啓動時傳入的配置文件路徑參數),切勿隨意修改。
2) defaultLinkVRConfig (默認的配置文件路徑),當指定的配置文件路徑不存在時,使用默認的
配置文件路徑。
3) showCursor (是否顯示鼠標指針),能夠直接在 config.xml 文件中修改屬性值來決定案例內
容是否顯示鼠標指針。
4) isFlyMode (漫遊是不是飛行模式),能夠直接在 config.xml 文件中修改屬性值或在代碼中使
LinkVRMoveManager.Instance.IsFlyMode = value 修改屬性值來決定漫遊是否採用飛行模式。
漫遊模式,有兩種方式:
剛體模式,運用的是 LinkVR.Characters.FirstPersionController 腳原本控制漫遊。
飛行模式,運用的是 LinkVRMoveManager.TranslateFlyMode() 來控制漫遊。 上海曼恆數字技術股份有限公司
9
4.2 實現漫遊
LinkVR -> FPSController.prefab 拖到場景中,如有其餘的 VRPlayer 請移除。(場景中要有地面)便可
實現漫遊。正如 Assets -> LinkVR -> Examples -> 001 - SimpleExample 案例所示。
4.3 實現 UI 交互
Link VR 內,提供了 UGUI 的事件監聽器。其中提供了兩種方式,一種是直接實現事件接口,另外一種
是利用 EventTrigger 添加事件: AddTriggerListener() 。詳見 Assets -> LinkVR -> Scripts -> Event ->
EventTriggerListener 腳本。以下圖所示:
4.3 EventTriggerListener
1. LinkVR -> FPSController.prefab 拖到場景中,如有其餘的 VRPlayer 請移除。
2. 新建腳本,綁定 UI 以及事件,並將腳本拖拽至場景物體上(具體的 UI 交互案例請查看 LinkVR ->
Examples -> 002 - UIExample )以下所示:
public Button button1; 上海曼恆數字技術股份有限公司
public Toggle toggle;
public Slider slider;
public Dropdown dropdown;
public ScrollRect scrollRect;
EventTriggerListener.Get(button1).onHover += (eventData, onHover) =>
{
Log(onHover ? "Button 1 is hovered" : "");
};
EventTriggerListener.Get(button1).onPress += (eventData, onPress) =>
{
if (eventData.button != PointerEventData.InputButton.Left) return;
Log(onPress ? "Button 1 is pressed" : "");
};
EventTriggerListener.Get(button1).onClick += (eventData) =>
{
if (eventData.button != PointerEventData.InputButton.Left) return;
Log("Button 1 is clicked");
};
toggle.onValueChanged.AddListener((bool isOn) =>
{
Log("The toggle state is " + (isOn ? "on" : "off"));
});
slider.onValueChanged.AddListener((float value) =>
{
Log("The value of slider is " + (int)value);
});
dropdown.onValueChanged.AddListener((int value) =>
{
string optionLetter = "";
switch (value)
{
case 0:
optionLetter = "A";
break;
10 上海曼恆數字技術股份有限公司
case 1:
optionLetter = "B";
break;
case 2:
optionLetter = "C";
break;
case 3:
optionLetter = "D";
break;
}
Log("The dropdown option selected is Option " + optionLetter);
});
EventTriggerListener.Get(scrollRect).onBeginOrEndDrag += (eventData, onBeginOrEndDrag) =>
{
if (eventData.button != PointerEventData.InputButton.Left) return;
Log(onBeginOrEndDrag ? "ScrollView is on drag" : "");
};
EventTriggerListener.Get(scrollRect.verticalScrollbar).onBeginOrEndDrag += (eventData,
onBeginOrEndDrag) =>
{
if (eventData.button != PointerEventData.InputButton.Left) return;
Log(onBeginOrEndDrag ? "Scrollbar is on drag" : "");
};
11 上海曼恆數字技術股份有限公司
12
4.4 實現手柄按鍵綁定
G-Motion 手柄在使用代碼獲取手柄輸入時,對應按鍵的序號以下:
4.4 手柄按鍵序號
1. LinkVR -> FPSController.prefab 拖到場景中,如有其餘的 VRPlayer 請移除。
2. 新建腳本,綁定手柄按鍵( Joystick 中的 Buttons 數組即對應了 G-motion 手柄的按鍵,如下示例
是以手柄 0 鍵爲例),並將腳本拖拽至場景物體上,以下所示:
方式一:
// 獲取手柄實體
JoystickTracker t = LinkVRInput.Joystick;
if (t != null)
{
// 手柄 0
t.Buttons[0].onButtonDown = () =>
{
Debug.Log("ButtonDown");
};
t.Buttons[0].onButtonUp = () =>
{ 上海曼恆數字技術股份有限公司
Debug.Log(「ButtonUp」);
};
t.Buttons[0].onClick = () =>
{
Debug.Log(「Clicked」);
};
}
方式二:
// 手柄 0
if (LinkVRInput.GetButtonDown(0))
{
Debug.Log("ButtonDown");
}
if (LinkVRInput.GetButtonUp(0))
{
Debug.Log("ButtonUp");
}
if (LinkVRInput.GetButton(0))
{
Debug.Log("Button");
}
方式三:
// 結合 UI
public Button button1;
EventTriggerListener.Get(button1).onClick += (eventData) =>
{
// 手柄 0
if (eventData.button != PointerEventData.InputButton.Left) return;
Log("Button 1 is clicked");
};
注:在 LinkVR 系統中,有默認註冊的手柄事件並開啓了手柄射線,請務必先查閱 JoystickBehaviour 類,
該腳本掛載在 LinkVR -> Resources -> Joystick.prefab 上,當 LinkVR 系統初始化時,會默認加載該手柄。其中
Joystick.RaycastDistance 爲射線長度; Joystick.LayerMask 爲須要相應的層級; Joystick.IsRaycastOn true
不然不發射射線。
13 上海曼恆數字技術股份有限公司
14
5 功能介紹
5.1 開發者模式
isDeveloperMode 表示是不是開發者模式,它利用鍵盤和鼠標對應追蹤手柄的按鍵,做用是能夠模擬
沉浸式追蹤環境,便於開發者進行開發和調試。
啓用開發者模式
會自動添加 DeveloperMode 腳本,開發者能夠利用鼠標、鍵盤進行操做測試,具體的鼠標鍵盤按鍵與
手柄對應關係在運行後 GUI 上會有提示。
控制狀態可分爲控制人物和控制手柄兩種。控制狀態切換鍵爲 LeftAlt
Control State Player 時,控制人物移動以及旋轉。
Control State Hand 時,控制手柄移動以及旋轉。
5.1 啓用開發者模式 上海曼恆數字技術股份有限公司
15
5.2 開發者模式的提示信息
不啓用開發者模式
會自動去除 DeveloperMode 腳本。
5.3 不啓用開發者模式
若開發者想在該模式下進行測試,則須要進行如下步驟:
1) 確保鏈接追蹤外設(鏈接 Venomx 手柄和對應的接收器) 上海曼恆數字技術股份有限公司
16
5.4 Venomx 手柄 圖 5.5 Venomx 手柄按鍵接收器
2) Assets -> StreamingAssets-> single_screen.xml (默認指定的配置文件)中,將設備地址段的設備
名稱更改成「 Venomx 」,保存
5.6 配置文件設備地址段原內容
5.7 配置文件設備地址段更改後內容
3) 啓動 Assets -> StreamingAssets->VRPN-> VenomxListener.exe ,該程序會自動監聽 Venomx 手柄的按
鍵事件和搖桿軸事件。
5.8 Venomx 監聽程序 上海曼恆數字技術股份有限公司
17
4) 此時,在 Unity 編輯器內當內容運行後,就能夠接收到手柄的按鍵事件了。不過只能有按鍵的事
件,位置追蹤和旋轉是沒有數據的,測試過程當中須要在 Scene 視窗中手動拖拽和旋轉手柄位置,
因此不能在編輯器中測試手柄按住按鍵拖拽 UI 或物體的操做,只能利用現場環境的追蹤系統了。
注:因版本問題,有可能會出現版本不一致形成此監聽程序獲取不到手柄的輸入。遇到此類問題,請
確認 Venomx 手柄和接收器是否能夠匹配版本爲 1.0.1 Venomx 監聽程序。 LinkVR 只提供 1.0.1 版本的
Venomx 監聽程序。 上海曼恆數字技術股份有限公司
5.2 抗鋸齒
因爲 LinkVR 的雙目渲染方式與 Unity MSAA 硬件抗鋸齒不兼容,致使應用程序在打開後黑屏,所以
要想支持抗鋸齒,可添加抗鋸齒的腳本。當前在 FPSController -> FirstPersonCharacter 相機模板上已經添加
AntiAliasing 腳原本處理抗鋸齒,此時 Camera 上的 MSAA 不要勾選。若開發者想用其餘的抗鋸齒方式,
可選擇 Post Processing 插件或其餘的抗鋸齒插件。
5.9 抗鋸齒
18 上海曼恆數字技術股份有限公司
5.3 UI 交互
002 – UIExample 案例中,有基本的 UI 交互示例。該案例中,在物體上添加了 UIInteraction 腳本,
該腳本是一個 UI 示例腳本,主要有如下功能:
1. Hover :手柄射線是否懸浮在 UI 按鈕上
2. Button :手柄是否按下、擡起、長按
3. Slider :手柄控制滑動
4. Toggle :手柄控制切換鍵
5. Scrollview :手柄控制卷軸視圖上下滑動
6. Dropdown :手柄控制下拉菜單並選擇菜單中的內容
7. DragAndDrop :手柄控制拖放操做
5.10 UI 交互腳本示例
5.11 UI 交互視圖
19 上海曼恆數字技術股份有限公司
5.4 瞬移功能
003 - TeleportExample 案例中,運行後能夠進行瞬移操做。該案例中,在 FPSController ->
LinkVRSystemRoot 上添加了 LinkVRTeleport 腳本,該腳本主要有如下四個字段和三個委託:
1. enableTeleport (是否啓用瞬移)
開發者可根據須要,來判斷是否啓用瞬移功能。
2. enableCameraFade (是否啓用相機淡入淡出特效)
開發者可根據須要,來判斷是否啓用相機淡入淡出特效。
3. teleportButton (瞬移按鍵)
開發者可自定義用哪一個按鍵來控制瞬移(默認是手柄上鍵),按下該按鍵,會出現瞬移射線。
4. confirmButton (瞬移確認按鍵)
開發者可自定義是否須要瞬移確認鍵,當該屬性爲 None 時,擡起瞬移按鍵,則可直接瞬移至圓圈
點位置;其餘狀況下,須要按下指定的瞬移確認鍵,便可瞬移。
5. onArcShow (瞬移曲線出現時的回調)
開發者可根據須要,在瞬移曲線出現時添加想實現的事件。
6. onTeleportComplete (瞬移完成時的回調)
開發者可根據須要,在瞬移完成時添加想實現的事件。
7. onTeleportPointComplete (瞬移至瞬移點完成時的回調)
與瞬移完成時的回調互斥,開發者可根據須要,在瞬移至瞬移點完成時添加想實現的事件。
LinkVR 提供了瞬移點預製體: LinkVR->Prefabs->TeleportPoint ,可在場景中放置實現瞬移點功能。
20 上海曼恆數字技術股份有限公司
5.12 瞬移腳本
5.13 TeleportPoint
21 上海曼恆數字技術股份有限公司
5.14 瞬移視圖
22 上海曼恆數字技術股份有限公司
23
6 核心類
如下內容僅簡要介紹,若想了解更多關於 LinkVR Unity 中的腳本編程接口,請查閱插件包中 LinkVR
API 文檔。
6.1 生成 LinkVR 結構
核心方法爲 LinkVR.LinkVRDeserializer.Deserialize(Transform root, string path, GameObject
cameraTemplate) LinkVR 系統會自動調用此方法,在指定的 Transform 下生成相應的節點。
6.2 LinkVRGmotion 類的屬性
Instance LinkVR Root 節點單例
IsDeveloperMode :是不是開發者模式
DeviceName :追蹤設備的名稱
DeviceIP :追蹤設備的 IPv4 地址
ScreenType :屏幕屬性 (弧幕 / 直幕)
Head :頭部追蹤節點,對應 G-motion 設備中的眼鏡
Hands :手部追蹤節點列表
Cameras :跟隨頭部追蹤點的相機節點列表
IsServer :是不是主端
ServerIP :配置文件中的主端 IP 地址,在多臺渲染機環境下,做爲轉發人物位置信息的主端
ClientIP :配置文件中的從端 IP 地址列表,在多臺渲染機環境下,做爲接收人物位置信息的從端
EyeSeparation :開啓主動立體時,雙眼之間的間距 (注: 1.4 及如下版本有效, 1.5 及以上版本廢
棄, 1.5 及以上版本的眼間距在解析配置文件時已賦值給相機)
HeadIndex :眼鏡標記體的序號
HandIndex :手柄標記體的序號
IsSingleClient :是否採用 1 N 模式 (注: 1.4 及如下版本有效, 1.5 及以上版本廢棄)
Joystick :第一個手柄節點的實例 上海曼恆數字技術股份有限公司
24
6.3 LinkVRMoveManager 類的屬性
Instance LinkVR LinkVRMoveManager 單例
rootTransform LinkVRSystemRoot 節點的父級 Transform ,父級主要用於第一人稱視角
FlySpeed :飛行模式下的飛行速度
FlyRotateSpeed :飛行模式下的旋轉速度
IsFlyMode :是不是飛行模式
6.4 LinkVRCamera 類的屬性
Tracker :頭部結點(父級節點),對應 LinkVRGmotion 中的 Head
IPAddress :相機所屬渲染機的 IPv4 地址,當客戶端的網絡地址與此相同時,此相機節點被激活,
而其餘相機節點則保持關閉狀態。
RefScreen :相機成像的屏幕物體,相機位置、屏幕位置、屏幕大小共同決定了相機的投影矩陣,
使相機永遠朝向此屏幕。
Near :相機的近裁剪面
Far :相機的遠裁剪面
StereoSeparation :相機眼間距
ResolutinWidth :屏幕分辨率 -
ResolutionHeight :屏幕分辨率 -
ScreenMappingRowIndex 1 N 模式下,對應屏幕的行號 (注: 1.4 及如下版本有效, 1.5 及以上
版本廢棄)
ScreenMappingColumnIndex 1 N 模式下,對應屏幕的列號 (注: 1.4 及如下版本有效, 1.5
以上版本廢棄)
ViewportRectWidth :相機視口起始水平位置
ViewportRectHeight :相機視口起始垂直位置
ViewportRectX :相機視口寬度
ViewportRectY :相機視口高度 上海曼恆數字技術股份有限公司
25
6.5 JoystickTracker 類的屬性和方法
屬性:
Address VRPN 追蹤點的網絡地址
Channel VRPN 追蹤點的傳輸通道
OnRefresh :刷新委託,能夠將自定義的關於手柄刷新時的操做綁定到該委託上
Axises :手柄全部搖桿軸
Buttons :手柄全部按鍵
IsRaycastOn :是否啓用射線,啓用則會觸發 [onEnter] [onExit] [onHover] 事件以及 UI 事件
RaycastDistance :射線長度
LayerMask :響應射線的層級
Ray :手柄發射的射線
Hit :手柄射線所獲取的信息
UIEventCamera :接收 UI 事件的相機
onEnter :手柄射線進入物體時觸發的委託
onExit :手柄射線離開物體時觸發
onHover :手柄射線懸停在物體上時觸發
Refresh :在 FixedUpdate 中刷新手柄物理狀態,包括位置、旋轉、 UI 響應事件的相機的焦點、
射線觸發
RefreshInput :在 Update 中刷新手柄輸入狀態,包括按鍵的點擊、搖桿軸的偏移值
方法:
GetButton(int index) :獲取指定按鍵是否被持續按下
GetButtonDown(int index) :獲取指定按鍵是否被按下
GetButtonUp(int index) :獲取指定按鍵是否被擡起 上海曼恆數字技術股份有限公司
26
6.6 JoystickTracker.Button 類的屬性和方法
屬性:
ClickInterval :規定當前按鍵的點擊事件中按鍵按下和擡起的時間間隔,超過該值則不觸發點擊事
IsDown :當前按鍵的狀態
方法:
onButtonDown :當前按鍵被按下時觸發的委託
onButtonUp :當前按鍵被擡起時觸發的委託
onButtonPress :當前按鍵被持續按下時觸發的委託
onClick :當前按鍵被點擊時觸發委託
SetState :設置當前按鍵的狀態
6.7 JoystickTracker. Axis 類的屬性和方法
屬性:
Threshold :當前軸被斷定爲改變的閾值,小於該值被斷定爲偏移值沒有改變
Value :當前軸的偏移值
方法:
onAxisChanged :當前軸被偏移時觸發的委託
SetAxis :設置當前軸的偏移值
6.8 LinkVRInput 類獲取手柄輸入
Joystick :手柄實體
JoystickTransform :手柄實體的 Transform
GetButton(int index) :獲取指定按鍵是否被持續按下
GetButtonDown(int index) :獲取指定按鍵是否被按下
GetButtonUp(int index) :獲取指定按鍵是否被擡起
GetAxise(int index) :獲取搖桿指定軸向的偏移值
GetAxis(AxisType axis) :獲取搖桿指定軸向的偏移值 上海曼恆數字技術股份有限公司
7 案例發佈
7.1 設置 PlayerSettings
7.1 設置 PlayerSettings
27 上海曼恆數字技術股份有限公司
7.2 設置 QualitySettings
目前,若是 Unity 工程在發佈時選擇的是採用 OpenGLCore 渲染,因爲 LinkVR 的雙目渲染方式與 Unity
MSAA 硬件抗鋸齒不兼容,致使應用程序在打開後黑屏,所以須要把抗鋸齒選項設置爲 Disabled 。同時,
確保 Async Upload Buffer Size = 4 ,不然會影響立體顯示。
7.2 設置抗鋸齒
28 上海曼恆數字技術股份有限公司
29
7.3 注意事項
1. 在多臺渲染機電腦的環境下,動畫系統和粒子系統的同步,須要關閉動畫系統或粒子系統中的隨
機變量,並保證案例內容同時啓動。
2. Unity 發佈設置狀況
1) 若是 Unity 工程在發佈時選擇的是採用 OpenGLCore 渲染,務必將 QualitySettings 中的抗鋸齒
屬性設置爲不開啓, LinkVR 的雙目渲染方式與 Unity MSAA 硬件抗鋸齒不兼容,致使應用
程序在打開後黑屏。
2) 若是 Unity 工程在發佈時選擇的是採用 Direct3D 11 渲染,在顏色空間設置項中務必選擇
Gamma 選項, Linear 顏色空間會破壞立體渲染,這是 Direct3D 的一個限制。
3) 另外,在 Windows7 系統中,採用 Direct3D 11 渲染的應用程序不支持主動立體,在 Windows10
系統中,兩種渲染方式都支持主動立體。
4) LinkVR Unity SDK 默認採用並推薦的渲染方式是 OpenGLCore ,由於它在系統方面的兼容性更
好。若是項目須要,您能夠不勾選 Automatically Check And Set Project Settings ,並手動設置
爲採用 Direct3D 11 渲染,但須要知曉其在主動立體方面的限制。
3. Unity Shader 支持狀況:
1) 水的 Shader 有限制。
a) 啓用主動立體後形成的影響( OpenGL 環境):
啓動案例後能進入場景,但屏幕閃爍,帶有 Unity Logo 一塊兒閃爍。
b) 規避方法:檢查項目中是否有用到水,給水換一個材質或 Shader
2) 某些 Direct3D 渲染使用的 shader OpenGLCore 渲染環境下不支持。
4. Unity 視頻支持狀況:
1) 支持 MovieTextrue
2) 支持 VideoPlayer ,可是視頻不宜過大或過多,不然會致使佔用 GPU 過大,立體刷新幀率降
低,形成畫面抖動。
3) 能夠選擇其餘視頻插件。
相關文章
相關標籤/搜索