周末沒更新,原因是因為大叔參加了西雅圖華人創業協會舉辦的Start up weekend,都是一些對VR/AR有興趣的人周末做一些有趣的項目,把一些想法放在VR或者AR的項目上開發。這個年紀在國內寫代碼可能被小朋友們鄙視,不過在米國好像像我這樣的寫代碼的比比皆是。出生率那么低,年輕人越來越少,願意寫代碼的估計也越來越少了。周末兩天寫一個Bar Chart,寫了一些點擊操作,語音控制,還有拍照連到后台去做圖像處理,非常有趣。不過開發過程中也踩了很多坑,先是寫了些代碼在visual studio上跑過了,到了unity上不work,然后是unity部署到hololens上又不好用,各種crash,各種重啟。深刻體會到這個價值3000美元的東西的確是開發板,開發版本啊!!淚千行有沒有。周末我們主要做了一個對象掃描的小app,可以掃描虛擬對象或者拍張照掃描實際對象,然后展示數據,例如Barchart, Pie等等。這個主要可以用在倉儲,零售等等行業。
今天來講講hololens的開發配置。說到底Hololens上跑的就是Windows 10。所以支持UWP和全屏模式。UWP就是一個窗口浮動在牆上,你可以用手指和Gaze做一些放大縮小,點擊,拖拽,右擊等等操作,那個就跟寫windows 10 store的app一樣。Hololens下最絢爛的,其實是Unity寫的全屏程序,當然也可以用DirectX來寫,只要在Visual Studio里面創建Holographic DirectX 11 App就可以了。不過微軟推薦使用Unity 5.4開發,所以今天我們簡單看看怎么用Unity創建一個簡單的Hololens程序。
首先裝完Visual Studio 2015 Update 2, Hololens 模擬器以及Hololens for Unity的插件,我們就可以啟動Unity了。Unity是一個跨平台的開發工具,上周末舉辦的Startup Weekend,所有的組都需要找Unity的開發者。不管是在Oculus Rift, Samsung Gear VR,HTC Vive還是在Hololens上開發,都需要用到Unity,足以見得這個平台以后會大熱。Unity主要是用來寫游戲的,可以直接部署到iOS,Android,Windows, Web等等各種平台上。
首先啟動Unity,注意這個系列不是Unity的教程,所以我們不會對unity做太多講解,有興趣的碼農可以前往http://unity3d.com/了解詳情。打開以后和以前一樣創建一個Unity項目,給項目起個名字,然后選擇3d,位置等等。
創建完成以后就會看到主界面了。
中間是用來畫復雜對象的,左邊是對象層次,右邊是屬性,下面是項目文件和輸出。和Visual Studio大同小異。我們可以在3d的場景里插入一個3d對象,例如Cube, Sphere,還可以調整光源,視角等等。說到這里又要提一下血淚史。昨天我們要動態生成3d的barchart,用程序來實現3d對象,這個本身是不難。不過要復習各種3d幾何概念,什么正投影,透視投影,投影的視角大小,光源的距離都要進行調整。作為一個一直寫服務器端后台代碼的大叔,好久沒有碰圖形學的代碼,突然要上手實在有點汗。另外為了讓bar chart的位置好看,還要算等差數列。。。。要當碼農,從小學好數學是必不可少的。現在算等差數列的水平跟高中比還是差了一大截。
首先我們先放一個3d Cube進去,選擇GameObject->3d Object -> Cube,為了讓這個Cube變成紅色,我們在Project的Assets目錄里面創建一個子目錄,叫Resources,添加一個新的Material,改名為Red。同時在右上方的Albedo里面,選擇紅色。最后將這個Meterial從下面的Resources目錄拖動到Cube上,這樣一個紅色的Cube就出現了。
在Hololens里面,視角總是0,0,0,看的方向總是Z方向,所以我們需要選中左邊Hierarchy里面的Main Camera,將視角Position改為0,0,0。另外Unity背景默認是天際線,而hololens里面是現實場景,所以我們改為黑色背景,把Clear Flags設置為Solid Color,背景顏色修改為黑色,0x00000000,另外要修正裁切面的最近距離,Hololens推薦改為0.85米。
此外由於我們剛才的Cube在空間坐標系原點位置,而視角也在原點位置,所以這樣是看不到方塊的,要將方塊的位置向Z的正方向移動,我們選中Cube,然后將Y改為-0.5,Z改為3。這樣就可以看到方塊了。
搞定之后可以點擊File -> Save Scene, 保存下場景。這個簡單的項目就算是完成了。
接下去是在hololens上配置的關鍵:
1,選擇Edit -> Project Settings -> Quality
在Inspector里面,把Windows Store Logo最下面的那個Default,選成Fastest,這樣渲染的幀數會最快,Hololens里看到的效果也會最好。
2,選擇File -> Build Settings, 左邊選擇windows store,然后點擊Switch Platform,將當前項目切換為Windows Store項目。
3,點擊Add Open Scenes將當前場景加到編譯配置中。
4, 點擊Player Settings,在inspector窗口里面有些設置,點擊那個Windows Store的綠色按鈕,拖到最下面有一個Publish Settings -> Capability, 可以選擇支持的功能。Hololens常用的功能包括WebCam,支持拍照或錄像;Spartial Perception,空間感知,支持空間表面分析和空間定位。Microphone,可以支持錄音,語音控制,語法糾正,關鍵詞識別等等。最后是picturesLibrary / videosLibrary / musicLibrary,可以訪問一些本地資源。還有InternetClient,可以訪問網絡。
另外在Other Settings里面要確保Virtual Reality Supported選中,且支持Windows Holographic。
5,右邊Windows Store里面把SDK設置為Universal 10, Build Type是D3D。
搞定了之后就可以點擊Build,生成C#項目了。創建一個新的目錄叫App,把所有Visual Studio的文件都放在這個目錄里面就可以了。
然后Unity會在這個目錄里面創建一大堆各種各樣的文件,用visual studio打開這個sln文件,啟動項目就是這個Hotcan-Demo-Unity-On-Cnblogs.proj。在編譯選項里面選中Release,x86。然后選擇Hololens模擬器。Ctrl+F5, Start Without Debugging。這個方塊程序就在模擬器上跑起來了。如果要在真機上運行,什么你們還沒有真機?那么去www.hololens.com上買一個吧,現在預定大概要3個月以后才到貨,僅對北美地區地址供貨。。。。居然敢歧視我們天朝,要知道我的Hololens是從蘇州某個地方生產然后發貨到美國來的,不給中國發貨以后蘇州工廠就不要生產了,價格3000美金,國內大概要加17%增值稅。Brexit以后人民幣又暴跌了100個點創歷史新低達到1:6.66,折合人民幣23376.6。可以買到上海外環邊房子半個平方。北京宇宙中心五道口1/5個平方。
為什么扯了久是因為這個編譯和部署還是很耗時間的,大概需要3-5分鍾。Hololens一個項目動則1個GB,沒有強大的機器還是不要跑了。就這個破方塊編譯以后大概占了46M的空間。
最后給大家分享一下周末寫的那個bar chart的樣子。如果想要深入學習hololens,我在考慮是不是開門課教大家開發另帶體驗hololens,把hololens的成本賺回來。