九又VR技術(shù)負責(zé)人官山山:九又VR平臺架構(gòu)設(shè)計的深層思考
原創(chuàng)2016年04月22日,由51CTO傳媒主辦的《中國首屆VR/AR技術(shù)大會》在北京駿馬國際酒店召開。我們邀請了業(yè)界知名的技術(shù)精英來分享VR/AR熱度下最前沿的探索,交流觀點并進行實踐分享,志在打造一屆真正有干貨有內(nèi)容產(chǎn)出的技術(shù)盛會。除了技術(shù)交流分享外,我們還設(shè)置了現(xiàn)場體驗專區(qū),提供***的***的VR設(shè)備供您體驗VR游戲、電影場景等。
下面是來自九又VR技術(shù)負責(zé)人官山山先生給大家?guī)淼氖侵黝}為《九又VR平臺架構(gòu)設(shè)計的深層思考》的精彩演講實錄。
官山山,哈爾濱工業(yè)大學(xué)碩士,研究方向為人工智能、機器學(xué)習(xí)、系統(tǒng)架構(gòu)。曾任百度高級研發(fā)工程師,移動搜索短視頻、作業(yè)幫等項目早期創(chuàng)始人?,F(xiàn)負責(zé)研發(fā)九又系統(tǒng)平臺,包括9U ROM、9U UI,九又SDK等。
【以下為現(xiàn)場演講實錄】
我是來自九又VR的工程師官山山,我先解釋一下“九又”,我們?nèi)∵@個名字是帶你進入魔法世界的意思,有人問我們九又四分之三是不是用數(shù)字提示你們,不斷地向十全十美這個目標邁進,我們確實沒有想到這一點,但是我們確實是這樣做的。
接下來我們講一點我們自己在這兩年實踐中的思考,跟大家一起討論一下。從以下幾個方面開始,先介紹一下九又。我先介紹一下VR的發(fā)展史,VR是一門綜合技術(shù),它是一個擁有較高技術(shù)門檻的一項技術(shù)。很多人說VR沒有技術(shù)門檻,但是我認為把一個普通的應(yīng)用,把一個普通的游戲直接摁成左右,我覺得這不能算是一個VR應(yīng)用,它只能算是在VR上可以使用的應(yīng)用。
在我們開發(fā)應(yīng)用的時候,我們把一個應(yīng)用左右分屏,這肯定是一種不太好的體驗,VR并不是一門新的技術(shù),在1989年的時候,VR概念***提出來,但是在60年代,計算機創(chuàng)始人首先進行了初步的嘗試,但是確實也沒有成功,因為技術(shù)受限。到了1980年,硬件設(shè)備進行了一次大的更新升級,人們又進行嘗試,但是這次嘗試再次受挫,受挫主要體現(xiàn)在并沒有民用化,但是在一些商用化得到了極大的發(fā)展,在航空領(lǐng)域,在部隊領(lǐng)域,都得到了較大的應(yīng)用。VR再次***熱潮,是得益于智能手機的發(fā)展。
九又從2013年底開始立項,也是看到了智能化設(shè)備的發(fā)展,從一開始我們做一個VR娛樂設(shè)備,2013年底立項。2014年10月推出了***代工程機,我們不光有圖顯設(shè)備,還有輸入指環(huán),這一代沒有推向市場,我們衍生目標做一個民用化的產(chǎn)品,我們想著盡可能把它優(yōu)化,優(yōu)化以后再推向市場,我們進行了第二步的迭代,在2015年12月的時候,登陸了京東眾籌,在2月份的時候,給***批用戶發(fā)貨,通過市場上的反饋,我們進行了一些思考。
在現(xiàn)階段VR產(chǎn)品發(fā)展的時候,***個問題,沒有內(nèi)容。為什么沒有內(nèi)容?虛擬現(xiàn)實跟互聯(lián)網(wǎng)還有一點區(qū)別,互聯(lián)網(wǎng)發(fā)展大約有十幾年以后,我們才開始提跨界,提互聯(lián)網(wǎng)+。但是我認為虛擬現(xiàn)實天生就是與傳統(tǒng)行業(yè)相結(jié)合,什么現(xiàn)實?擁有各種行業(yè)才是一種現(xiàn)實。而互聯(lián)網(wǎng)上可能就沒有這種本質(zhì),所以說它要跨界,但是VR肯定就是跨界的技術(shù)產(chǎn)品。我們現(xiàn)在說沒有內(nèi)容,我們?nèi)テ渌袠I(yè)尋找,有很多這樣的情況,我們舉一個實際合作的例子。
有專家裝修設(shè)計公司,有很多裝修方案,傳統(tǒng)的做法可能就是電腦、大屏幕給客戶看一下方案,但是我們看一個屋子,通過圖片來展示效果肯定不好,客戶看了一遍又一遍,***看了實際效果不一樣。VR的興起,讓他們看到了希望,通過VR的形式更好的展現(xiàn)我們的室內(nèi)設(shè)計。但是他們是室內(nèi)設(shè)計的公司,他們并不懂VR,他們想用這項技術(shù),他們怎么解決呢?他們有他們的困惑,我們把所有的問題歸納總結(jié)了以下,有以下幾點。
***點,人機交互沒有通用的方案。傳統(tǒng)操作電腦、手機都是二維,我們進入三維的世界,對用戶來說是陌生的,而且一個應(yīng)用是這樣,另外一個應(yīng)用還不一樣,他學(xué)會這個應(yīng)用再進入另外一個應(yīng)用他要重新學(xué)習(xí),這是用戶的困惑。對于開發(fā)者,所有的東西不一樣了,要重新開發(fā),我添加一個按鈕怎么添加,跟手機和電腦上又是不一樣的,我開發(fā)的這個會不會獲得用戶的認可,讓用戶喜歡,我的這種模式用戶是不一定認可的。提到人機交互,我想說一點,現(xiàn)在很多的應(yīng)用開發(fā)者,他在開發(fā)的時候,在手機上開發(fā),基本上所有的應(yīng)用打開應(yīng)用以后,點一下開始,然后才進入一個VR模式,這樣子的應(yīng)用,就遇到很大的問題,一體機沒法說拿出來點一下,或者單屏幕操作,用戶也吐槽,這不是設(shè)備的問題,這個應(yīng)用就差一步,只要點擊開始以后,進去以后就可以操作,但是就差這一步,這也是我們的交互沒有通用的方案導(dǎo)致的。
第二點,在研發(fā)上沒有通用的方案,現(xiàn)在各種各樣的平臺都有,基于一體機設(shè)備的,在不同的設(shè)備上面,還有不同的引擎、不同的開發(fā)平臺。這對用戶來說,又有一個困擾,我要體驗所有的東西,我要把所有的平臺都買了,我要買一個一體機。剛才我說了內(nèi)容少,還有那么多平臺,給用戶造成困擾顯顯而易見?,F(xiàn)在我不能做到開發(fā)應(yīng)用照顧到所有的平臺,針對每一個平臺開發(fā)的成本是非常高的。
第三點,外設(shè)的管理沒有通用方案,在電腦上有鍵盤、鼠標,但是VR的輸入設(shè)備是什么?現(xiàn)在沒有標準,有手勢識別、我們做的是指環(huán),這所有都是不統(tǒng)一的,這對用戶來說,我選擇你的平臺,我只能接入你的外設(shè),想體驗其他的外設(shè)不支持,用戶一下子很難體會到更多的東西。對于開發(fā)者來說更痛苦了,可能一個平臺上就有多個外設(shè),我要針對不同的外設(shè),都要進行定制開發(fā),開發(fā)的成本又大大的加大。
基于以上三點,在開發(fā)內(nèi)容的時候,形成不了閉環(huán),沒有特別深入的內(nèi)容,用戶難以找到更多有價值的內(nèi)容和應(yīng)用,而研發(fā)團隊一個應(yīng)用沒法做到足夠的應(yīng)用。這是我們總結(jié)的幾個問題,現(xiàn)在VR產(chǎn)品發(fā)展現(xiàn)在遇到一個問題。
針對這些問題,我們提出了自己小的思考,首先我們選擇了一個比較廣泛的移動開發(fā)平臺—安卓,在安卓基礎(chǔ)之上可以支持Cardboard、支持Unity定制化開發(fā)。谷歌只是給我們提供了一個大約的框架,并沒有在VR上提供版本系統(tǒng),他提供了一個基礎(chǔ)的功能,但是并沒有告訴我們,你在這上面應(yīng)該怎么做,谷歌只能說是這個行業(yè)的引導(dǎo)者,不是競爭者,我們可以跟著谷歌一起做。
九又VR整體框架
上圖是九又的整體框架,我們把這些位置進行了抽象圖分析,三個部分,一個是視覺處理;一個是場景容器;一個是外設(shè)適配,視覺處理是最重要的,VR是一個輸出設(shè)備,在這上面要做反畸變、ATW、光場成像。人在看真實世界的,發(fā)出的光是無數(shù)點發(fā)出來的,我們看一個屏幕的時候,只是在一個屏幕上發(fā)出來的,本身是欺騙你的眼睛的,這跟真實世界完全不一樣,就算把延遲降到10毫秒,還是存在一定程度上的延遲,光上,在視覺處理上非常重要的一點。
場景容器,可以支持多場景的融合,我們把所有的外設(shè)進行統(tǒng)一,輸出成語義事件,什么是語義事件?比如說最簡單的點擊,不同的地方點擊的定義不一樣,一個手勢識別可能是一個動作,而一個手表有一個按鍵,或者一個指環(huán)有一個按鍵,這些東西定義不一樣,我們在SDK里面把所有的都分裝,把所有的外設(shè)進行抽象,所有的都映射到這個事件中。指環(huán)是怎么樣揮拳動作,我們可以把所有的動作,不一樣在上層統(tǒng)一一個接口,這是我們想到的語義事件解析。在語義事件上,不光有外設(shè)的,還有其他的,比如說一個系統(tǒng)事件,比如說頁面上提示,或者說關(guān)機,有一些系統(tǒng)事件,我們也把這些事件進行統(tǒng)一,視為所有的設(shè)備。應(yīng)用事件,可能也需要我們統(tǒng)一成一個標準事件,比如說瞄準,我們把瞄準都統(tǒng)一下來。
九又VR整體方案
上圖,上面一層,是SDK內(nèi)部做的一個事情,我們內(nèi)部做這些事情暴露出來的接口,上面第二層,提供給開發(fā)者的SDK,我們通過下面這層實現(xiàn),提供給開發(fā)者基本的交互組件,包括各種各樣的,一個按鈕,我們要在空間中顯示一個名字,顯示一張圖片,包括一段視頻,或者說一個提示框,我們把這個變成標準的組件,我們可以定義它的位置、顏色、大小,用戶就像在傳統(tǒng)設(shè)備上開發(fā)應(yīng)用一樣簡單容易。在組件上還有正常的系統(tǒng)運行時的組件,比如說要選擇、瞄準,包括外設(shè)事件。在這之上,暴露給用戶就是最上層的這些。
全局菜單,我們在使用很多設(shè)備的時候,我們發(fā)現(xiàn)有一些基本的交互是依賴于設(shè)備的,比如說我要返回,一些東西要操作要依賴于設(shè)備,這樣肯定不好,對用戶和開發(fā)者不好,我們在想交互組件的時候,我們就要把這些全局組件剝離出來,是針對整個平臺使用的。我們對全局組件用戶可以進行個性化的定制,比如說我有一個全局返回按鈕,在每一個開發(fā)者內(nèi)部都根據(jù)自己的系統(tǒng),重新設(shè)計全局按鈕,我怎么返回,怎么進行操作,這是一點。還有VR輸入法,也是我們自己已經(jīng)做了的,現(xiàn)在把它進行開元,當(dāng)然現(xiàn)在做的比較簡單。還有用戶賬戶、支付系統(tǒng)等等,基本的東西可以構(gòu)成內(nèi)容閉環(huán)的。本地文件服務(wù)不是文件管理,APP Store是云端的應(yīng)用,本地文件服務(wù)就是本地資源的管理,開發(fā)者可以有各種各樣的形式,讓用戶進行應(yīng)用管理,不限于傳統(tǒng)的,我擺一個圈,這個地方可以更多更好玩的定制。
用戶習(xí)慣采集,我們提到了外設(shè),外設(shè)都不那么精準,至少我們在這個地方,如果把一些用戶的一些常用操作采集起來,這將是一個非常非常有價值的數(shù)據(jù)。我們也查大數(shù)據(jù)應(yīng)用,現(xiàn)在還是僅限于一些網(wǎng)頁上比較多,但是未來更大的數(shù)據(jù)是基于傳感器的,人所做的各種各樣的操作,如果說我們能把這樣的操作收集起來,這樣的數(shù)據(jù)將會是非常非常有價值的。所以說針對用戶的操作習(xí)慣采集,我們把這些數(shù)據(jù)收集起來,進行大數(shù)據(jù)的學(xué)習(xí),再反饋到外設(shè),從而不斷地提高外設(shè)的精度和可用性。
具體我們要做的,基于一個開放平臺,提供一些核心組件,提供支付、發(fā)布廣告,我們構(gòu)建資源平臺,用戶可以在資源平臺獲取云端資源到9UOS,進入9UOS,可以收集用戶的使用習(xí)慣進行深度學(xué)習(xí),同時,還可以反饋到外設(shè)上,同時我們可能還有一個在線商城,銷售所有的外設(shè),我們可以支持各種各樣的外設(shè),你用我們的OS就支持所有的操作,你可以使用指環(huán)設(shè)備,可以用一個手勢識別的廣告。
廣告聯(lián)盟是什么呢?微信在做廣告的時候,他當(dāng)時說了一點,廣告是無處不在的,因為是一個虛擬現(xiàn)實,你進入虛擬環(huán)境,廣告可能就不那么明顯,比如說我在玩一個游戲的時候,在這個游戲行業(yè)的時候,可能就有游戲的T恤,廣告再的不那么突兀,而是這個場景中的一部分。所有的這些,都是基于9UOS基礎(chǔ)之上的。
以上是51CTO.com記者從一線為您帶來的精彩現(xiàn)場報道。后續(xù)我們還有更加精彩的獨家報道,敬請關(guān)注。