自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

不知道怎么開發(fā)VR游戲?Unity5.3官方VR教程重磅登場(chǎng)-系列2

移動(dòng)開發(fā) 游戲開發(fā)
為了準(zhǔn)備好學(xué)習(xí)使用Unity開發(fā)VR應(yīng)用,我們首先要檢查下自己的電腦硬件和軟件配置是否滿足要求。簡(jiǎn)單來說,顯卡要NVIDIA GTX970或AMD290以上,CPU要Intel i5-459以上,內(nèi)存8GB以上,要有兩個(gè)USB3.0接口,一個(gè)USB2.0接口,一個(gè)HDMI 1.3接口。

[[163670]]

筑基

為了準(zhǔn)備好學(xué)習(xí)使用Unity開發(fā)VR應(yīng)用,我們首先要檢查下自己的電腦硬件和軟件配置是否滿足要求。簡(jiǎn)單來說,顯卡要NVIDIA GTX970或AMD290以上,CPU要Intel i5-459以上,內(nèi)存8GB以上,要有兩個(gè)USB3.0接口,一個(gè)USB2.0接口,一個(gè)HDMI 1.3接口。

操作系統(tǒng)比較坑爹,不支持Mac,也不支持Linux。支持Win7,Win8,Win10。

當(dāng)然,還要把自己的顯卡驅(qū)動(dòng)升級(jí)到***版本。

Oculus官方的檢測(cè)地址:oculus.us5.list-manage.com

關(guān)于電腦配置的相關(guān)信息,可以參考:Oculus Rift明天開啟預(yù)訂,你的電腦配置夠不?(新增官方檢測(cè)工具地址)

一旦完成了這種燒錢的工作,就該安裝Unity了。注意在打開Unity前要把DK2連接好并開啟。 在繼續(xù)之前,打開Oculus Configuration Utility應(yīng)用,并檢查Demo Scene可以正常運(yùn)行。注意在運(yùn)行Demo Scene之前看可能需要在Oculus Configuration Utility中設(shè)置一個(gè)新用戶。

創(chuàng)建***個(gè)VR項(xiàng)目

接下來我們將使用Unity創(chuàng)建一個(gè)簡(jiǎn)單的VR項(xiàng)目demo,其效果是在VR頭盔中觀察一個(gè)立方體。如果你想研究更多VR示例,不妨下載我們?cè)谏弦黄坛讨刑岬降腣R示例項(xiàng)目(Asset Store)。

Step 1.

打開Unity,創(chuàng)建一個(gè)新的空項(xiàng)目。

說明一下,我當(dāng)前用的Unity版本是5.3.1f1,可能你看到這篇教程的時(shí)候又已經(jīng)升級(jí)換代了。

Step 2.

在Unity的菜單中選擇Fiel- Build Settings,并選中PC,Mac& Linux Standalone

Step 3.

在場(chǎng)景中創(chuàng)建一個(gè)新的立方體,從菜單中選擇Game Object - 3D Object -Cube ,通過Translate工具把立方體放到默認(rèn)的Main Camera 前面,類似下面。

Step 4.

保存界面(File- Save Scene,或是使用快捷鍵)。

Step 5.

在菜單中選擇Edit- Project Settings - Player,在”Other Settings“部分勾選”Virtual Reality Supported”

Step 6.

點(diǎn)擊Unity界面上的Play按鈕進(jìn)入Play模式。

如果之前的設(shè)置沒有問題,現(xiàn)在你應(yīng)該可以通過DK2看到這個(gè)場(chǎng)景,四處看看,Unity中的攝像機(jī)將自動(dòng)根據(jù)DK2的位置和旋轉(zhuǎn)變化反應(yīng)。

出錯(cuò)了怎么辦?

如果你沒有在DK2中看到期望的場(chǎng)景,那么檢查以下的事項(xiàng):

  1. 確保你在打開Unity項(xiàng)目前就已經(jīng)把DK2接好并且開啟了。
  2. 打開Oculus自帶的Oculus Configuration Utility,看看Demo Scene是不是可以正常運(yùn)作
  3. 更新你的顯卡驅(qū)動(dòng)到***版本
  4. 確保你在電腦上裝了***的Oculus Runtime 0.8,或更高版本。

當(dāng)然,如果還是有問題,可以到論壇里面參與討論。Virtual Reality

關(guān)于VR開發(fā)的一些有用信息:

雖然VR應(yīng)用開發(fā)和標(biāo)準(zhǔn)Unity應(yīng)用開發(fā)很相似,不過還是有些區(qū)別需要注意的。

1、編輯器中顯示的幀速(Frame rate)

當(dāng)你通過編輯器查看項(xiàng)目時(shí),注意體驗(yàn)上可能有些延遲,因?yàn)殡娔X需要將同樣的內(nèi)容渲染兩次。所以在實(shí)際測(cè)試項(xiàng)目的時(shí)候,***創(chuàng)建一個(gè)可執(zhí)行版本,在測(cè)試設(shè)備上實(shí)際體驗(yàn)。

2、攝像機(jī)的移動(dòng)

注意,我們不能在Unity中直接移動(dòng)VR攝像機(jī)。如果你希望調(diào)整攝像機(jī)的位置和旋轉(zhuǎn),需要確保將它設(shè)置為其它游戲物體GameObject的子物體,然后通過所依附的物體進(jìn)行移動(dòng)。

關(guān)于這一點(diǎn),可以查看VR Samples項(xiàng)目中的Flyer和Maze場(chǎng)景。

3、相機(jī)節(jié)點(diǎn)

左眼和右眼的攝像機(jī)并不是由Unity創(chuàng)建的。如果你在開發(fā)中需要獲取這些節(jié)點(diǎn)的位置,則必須使用InputTracking類。

如果你想要獲取場(chǎng)景中眼睛的不同位置(比如測(cè)試時(shí)),請(qǐng)使用下面的示例腳本,并將其attach到攝像機(jī)上。

4、C#腳本

  1. using UnityEngine; 
  2. using UnityEngine.VR; 
  3. public class UpdateEyeAnchors : MonoBehaviour 
  4.     GameObject[] eyes = new GameObject[2]; 
  5.     string[] eyeAnchorNames ={ "LeftEyeAnchor""RightEyeAnchor" }; 
  6.     void Update() 
  7.     {              
  8.         for (int i = 0; i < 2; ++i)         
  9.         {             
  10.         // If the eye anchor is no longer a child of us, don't use it  
  11.         if (eyes[i] != null && eyes[i].transform.parent != transform) 
  12.         {        
  13.             eyes[i] = null
  14.         }             
  15.         // If we don't have an eye anchor, try to find one or create one             
  16.         if (eyes[i] == null)             
  17.         {                 
  18.             Transform t = transform.Find(eyeAnchorNames[i]);                 
  19.             if (t)                    
  20.                 eyes[i] = t.gameObject; 
  21.             if (eyes[i] == null)                             
  22.             {                     
  23.                 eyes[i] = new GameObject(eyeAnchorNames[i]); 
  24.                 eyes[i].transform.parent = gameObject.transform;                 
  25.             }             
  26.         }             
  27.         // Update the eye transform             
  28.         eyes[i].transform.localPosition = InputTracking.GetLocalPosition((VRNode)i); 
  29.         eyes[i].transform.localRotation = InputTracking.GetLocalRotation((VRNode)i);         
  30.     } 

5、VR中的圖像效果(Image Effect)

在VR項(xiàng)目中使用眾多圖像效果是很奢侈的事情??紤]到你需要兩次渲染同一個(gè)場(chǎng)景(每只眼睛一次),因此很多當(dāng)前經(jīng)常使用的圖像效果對(duì)VR應(yīng)用來說會(huì)很浪費(fèi),會(huì)嚴(yán)重影響游戲的運(yùn)行幀速。

因?yàn)閂R將用戶的眼睛置入一個(gè)虛擬的空間,因此部分圖像效果對(duì)VR來說沒有任何意義。舉例來說,深度視角、模糊效應(yīng)和鏡頭光暈效果對(duì)VR來說沒有任何意義,因?yàn)樵诂F(xiàn)實(shí)世界中我們是看不到這些效果的。不過如果以后VR頭戴設(shè)備可以支持眼動(dòng)跟蹤,那么深度視角可能會(huì)有意義。

不過有些效果還是可以考慮使用的:比如抗鋸齒是有用的(特別是考慮到某些頭戴設(shè)備的低分辨率),色彩分級(jí)也很有用(關(guān)于這一點(diǎn)可以查看這個(gè)鏈接:Color Grading with Unity and the Asset Store),對(duì)有些游戲來說Bloom會(huì)有用。

不過在使用任何效果之前,***先在游戲中實(shí)際測(cè)試下有沒有用。

Unity自身提供了很多圖像效果(Assets-Import Package-Effects),此外Asset Store里面也提供了很多效果,比如Colorful,Chromatica,Amplify Color,還有更多。

6、Render Scale

根據(jù)VR互動(dòng)應(yīng)用場(chǎng)景的復(fù)雜度和所運(yùn)行的硬件環(huán)境,你可能需要更改render scale設(shè)置。通過此項(xiàng)設(shè)置可以調(diào)整鏡頭校正前texel:pixel的比率,這樣可以犧牲游戲性能來換取畫面的清晰度。

這項(xiàng)設(shè)置應(yīng)該通過代碼進(jìn)行,可以參考這里:http://unity3d.com/cn

通過使用以下代碼可以改變r(jià)ender scale的設(shè)置:

  1. using UnityEngine; 
  2. using System.Collections; 
  3. using UnityEngine.VR; 
  4. namespace VRStandardAssets.Examples 
  5.     public class ExampleRenderScale : MonoBehaviour 
  6.     {         
  7.         [SerializeField] private float m_RenderScale = 1f; 
  8.         //The render scale. Higher numbers = better quality, but trades performance 
  9.         void Start () 
  10.         { 
  11.             VRSettings.renderScale = m_RenderScale; 
  12.         } 
  13.     } 

關(guān)于這項(xiàng)設(shè)置,可以參考我們的VR Samples,具體示例是

Scenes/Examples/RenderScale場(chǎng)景。此外在MainMenu場(chǎng)景中也有該項(xiàng)設(shè)置的應(yīng)用。

更改render scale的效果示例如下:Unity的默認(rèn)render scale是1.0,效果如下:

如果將render scale設(shè)置成1.5,可以看到顯示效果更銳利:

接下來把renderscale設(shè)置成0.5,可以看到像素化很嚴(yán)重:

根據(jù)游戲場(chǎng)景的不同,可以考慮降低render scale來提升游戲運(yùn)行性能,或者通過增加render scale的數(shù)值讓畫面效果更銳利,但會(huì)以犧牲游戲運(yùn)行性能作為代價(jià)。

好了,看到這里,你應(yīng)該知道如何在Unity項(xiàng)目中整合VR,如何設(shè)置游戲中攝像機(jī)的移動(dòng),以及和非VR游戲相比應(yīng)該如何使用圖像效果。

責(zé)任編輯:倪明 來源: CocoaChina
相關(guān)推薦

2017-12-11 17:08:01

VR

2016-08-24 14:28:15

VR游戲VR技術(shù)

2021-03-03 06:48:18

VRAR

2020-02-21 14:55:02

Python代碼字符串

2020-08-04 09:57:52

JS開發(fā)前端

2021-05-25 16:20:09

VR交通安全醉駕模擬

2021-06-27 21:37:27

緩存雪崩穿透

2016-04-26 17:58:35

DOGAME

2020-06-12 09:20:33

前端Blob字符串

2020-07-28 08:26:34

WebSocket瀏覽器

2015-04-03 15:48:44

UNITE

2016-04-26 17:50:35

游戲VRAR

2021-04-13 11:28:15

VRAR虛擬現(xiàn)實(shí)技術(shù)

2011-09-15 17:10:41

2022-10-13 11:48:37

Web共享機(jī)制操作系統(tǒng)

2009-12-10 09:37:43

2021-02-01 23:23:39

FiddlerCharlesWeb

2020-12-21 09:00:04

MySQL緩存SQL

2010-08-23 09:56:09

Java性能監(jiān)控

2021-07-14 11:25:12

CSSPosition定位
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)