發(fā)布時間:2015-1-1 12:33:10
一提到虛擬現實,大家肯定會想到“靈境”、“Virtual Reality”、“幻真”....什么的,這些概念現傳的到處都是,很多行業(yè)內的公司企業(yè)網站上也都是用這些概念來裝點頁面!但是大家有沒有認真考慮過到底什么真正的虛擬現實及其存在的意義呢?
總是去學習別人的東西是一種緩慢的進步,快速的進步是認認真真的做好總結,得到自己想要的東西。
“虛擬現實”,先從字面上理解這個概念。在這個詞匯中,虛擬是定語,現實是關鍵字。說白了就是“虛擬了的現實”,可見重點是“現實”。也就是說我們要將現實世界中的真實環(huán)境通過某種手段虛擬演示模擬出來,達到以假亂真的目的。這里的現實對應的就是“真實世界”。真實世界這個范圍很大,比如物理學、醫(yī)學、地理信息、天體運行等,所涉及的專業(yè)知識就是我們整個世界的知識體系。在這個基礎上研究虛擬現實才會有更廣闊的發(fā)展方向和實際意義。
從廣義角度來講,虛擬現實本身也不僅僅局限于計算機技術。舉個最簡單的例子,比如魔術,我們都知道看到的東西其實是假的,但是我們卻真真切切的感受到那是真的,這是不是一種虛擬現實、虛擬演示呢?
計算機的出現我們本身就可以理解為是以一種虛擬演示現實技術的發(fā)展過程。首先,計算機的出現就是為了模擬人腦的工作流程,替代人工大量而繁瑣的計算工作。操作系統(tǒng)本身也是按人類的語言和思維方式設定的輸入輸出過程:字符界面的dos、unix、os/2等都是模擬人類的語言方式來操作的。到了桌面操作系統(tǒng)就更明顯,windows中的“桌面”、“我的電腦”、“網上鄰居”等等都是在通過真實世界的思維方式來管理計算機資源。計算機程序設計發(fā)展也是這樣,匯編語言是機器語言,非常不適應人類的思維習慣,所以到現在也只有CPU底層研發(fā)人員或專業(yè)人士才能使用。后來有了面向過程的pascal、c等面向過程的編程語言,這時候就非常符合人類的思維方式了,所以應用軟件才開始大發(fā)展,F在程序設計的基本思想是“面向對象”,把計算機里面的每個資源、設備或者是數據都歸納為以一個一個的類,我們使用的時候就是創(chuàng)建某個類的一個實例,這就是對象。通過設置對象的屬性、調用對象的方法等來實現操作數據的管理。整個計算機軟件的發(fā)展可以說就是一個越來越完善的虛擬演示應用。這也非常符合人類在對現實世界事物管理、分析的思維方式。
在計算機系統(tǒng)的前提下探討虛擬演示現實技術,我們就離不開計算機理論。首先,我們都知道,計算機的核心部分是操作系統(tǒng)。計算機操作系統(tǒng)是人機交互、資源管理的一個中心控制平臺。大家都知道本身計算機里面都是二進制的0、1代碼。這些數據通過存儲這些0、1代碼不同序列來實現我們所說的數據存儲。那么操作系統(tǒng)通過什么來管理這些數據呢?那就是文件系統(tǒng)。只有定義了文件系統(tǒng)之后、操作系統(tǒng)才能更好的、有效的管理這些數據。計算機系統(tǒng)還包括各式各樣的外圍設備—輸入輸出設備,這些設備也同樣是被定義成計算機系統(tǒng)中的資源,通過操作系統(tǒng)來管理。
這個計算機系統(tǒng)的模型我們可以延伸到虛擬現實領域。可以類推,虛擬現實系統(tǒng)中的核心部分應該是虛擬現實引擎,這個引擎控制管理整個系統(tǒng)中的數據、外圍設備等資源。與計算機系統(tǒng)一樣,根據不同的應用領域所選擇的計算機操作系統(tǒng)、外圍設備等也不同。比如專業(yè)數據庫系統(tǒng)一般用unix和oracle、專業(yè)的圖形系統(tǒng)諸如蘋果等。同樣的,虛擬現實系統(tǒng)中也針對不同的應用應該選擇不同的引擎(或者說是虛擬現實的操作系統(tǒng)VROS[Virtual Reality Operation System])。比如我們做路面駕駛模擬就要選擇能夠處理真實世界物理學數據的VROS,同時需要控制管理外圍設備的輸入輸出。在醫(yī)學方面,就必須要求能夠處理數字化人體數據以及想用的醫(yī)學模擬設備。在數字地球方面、就必須能處理空間信息數據等。這樣我們就可以有針對性的選擇適合應用的VROS(虛擬現實操作系統(tǒng)或者說是引擎)。
這里要說明的是,所謂數字化絕不是僅僅通過3D建模就能完成的。3D建模只是整個虛擬現實系統(tǒng)的一個輔助工作。比如數字化的人體是通過人體切片掃描,得到人體內血管、骨骼等人體結構詳細的位置、空間數據,并根據不同的對象設置不同的屬性,如對虛擬手術刀的力反饋系數等。在數字城市或者數字地球中也是這樣,如何空間遙感測繪數據、并生成可供實時輸出的圖像。城市設施等數據如電力線路、地下管道等,如何根據相關管理部分的數據生成適合人們查看的圖形圖像。當然僅僅生成圖像然人們看還遠遠不夠,更主要的是可以管理,譬如修改、更新、查詢等。這種情況下,如果沒有專業(yè)數據得支撐,一個是會產生大量的重復勞動,二就是做出來的東西不準確,沒有實際應用的價值。
為了達到更逼真的效果,目前的虛擬現實系統(tǒng)在視覺、觸覺、聽覺等方面也引進了更多的方式以及相應的外圍設備。通過這些設備我們就可以更好的模擬人類在真實世界中的感官體驗。我們依然按照計算機理論的構架來分析虛擬現實系統(tǒng),請看下圖:
所謂“虛擬現實”無論如何也脫離不了“現實”這個關鍵字,有了我們這個真實世界的數據,然后通過視景仿真來讓人產生視覺效果,通過力反饋、運動平臺等模擬真實世界中對人體的作用力,同時還有其他諸如嗅覺、味覺等方面的模擬。有了真實世界的真實數據,我們也可以通過軟、硬件把它轉化為計算機圖形或者其他形式輸出,這之后我們還面臨一個問題,那就是這些數據的管理。
好的虛擬演示現實引擎系統(tǒng)我想應該具有以下特質:
1、可視化管理界面:這個可視化界面不是我們在制作虛擬現實項目時所使用的那個工作界面,而是制作完以后提供給最終用戶的那個界面。這里舉個例子,早前我們用的visual C++ 或者是 Delphi 6.0 等,他們本身的開發(fā)界面也是可視化的,但是這個界面是提供給開發(fā)者的,而不是給最終用戶。提供給最終用戶的界面是要可以通過可視化的操作來管理客戶的數據,比如Delphi基于數據庫系統(tǒng)的 OA 、CRM等管理軟件,客戶可以根據需求來操作數據庫系統(tǒng)中的數據表、數據記錄等,實現系統(tǒng)的查詢、更新、刪除、修改、添加等。客戶感受到的是在可視化界面中的操作,而對數據庫系統(tǒng)的操作是內置模塊完成的,對于客戶來說是不可見的或者說是封的。虛擬現實引擎也應該有實現這個過程的方法,比如在數字城市中通過可視化客戶端添加建筑物、并同時更新數據庫系統(tǒng)的中位置、面積、高度等數據。這一點我們在玩游戲的時候可能是非常清楚的,比如你建造了一個兵工廠,在圖形環(huán)境中出現這樣一個兵工廠之外,游戲程序還在地圖上做好標記并實時更新了其數據記錄,以供可能的存儲(保持游戲)、刪除(被敵人打掉)、修改(破壞、維修)等操作。
2、二次開發(fā)能力:沒有二次開發(fā)能力的引擎系統(tǒng)的應用會有極大的局限性。所謂“二次開發(fā)”就是指引擎系統(tǒng)必須能夠提供管理系統(tǒng)中所有資源的程序接口,就是常說的API?赡苡腥苏J為,可以通過可視化操作實現這些功能就ok了,比如可以用鼠標拖拽一個3D模型到我的場景中來。我要說的是這樣做是一種方式,如果僅僅提供這一種方式還遠遠不夠。首先,這倆者并不沖突,系統(tǒng)的API 是可視化開發(fā)的一個最大補充,且API才是開發(fā)者自由發(fā)揮的最佳武器。我們每天都在使用windows操作系統(tǒng)給,我們發(fā)現基本上我們通過鼠標的一下簡單操作就可以實現windows下的基本的資源管理。做過windows應用開發(fā)的應該知道,其實我們每天所作的windows下的操作都可以通過調用windows API來實現,也就是說可以通過調用windows API來實現整個windows下所有的資源管理。同樣的在windows 下的visual studio 也提供了各式各樣的內置對象、函數、方法等,可以實現開發(fā)項目的資源管理。試想一下,如果visual studio 中我們只能拖拽幾個按鈕、對話框等放到窗口上而沒有任何二次開發(fā)能力,這樣做出來的應用程序有何意義?
3、數據兼容性:可以說,任何計算機程序都離不開數據的管理。比如一個簡單的記事本要實現基本的字符串操作,辦公系統(tǒng)中要管理人力資源、財務數據、客戶信息、業(yè)務流程等數據。游戲中要實現環(huán)境中的每個角色、建筑物、地圖這些對象的名稱、位置、生命值等屬性的管理。這里所說的兼容性就是指程序在管理本系統(tǒng)以外數據的能力。這一點對于虛擬現實引擎來說很重要,因為虛擬現實引擎最終處理的是真實數據,而真實數據在人類活動國中已經積累了很多并可能已經一各式各樣的方式和數據格式存在了,這時候虛擬現實引擎就要至少處理比較主流的數據格式。比如,在數字城市建設過程中,一個中型城市的建筑物、街道、河流、商業(yè)區(qū)等,我們用手工去做可能做出來的永遠都是城市的一角。但是在測繪領域這些數據可能已經非常完善了,我們就要通過我們引擎的數據處理模塊把這些數據做某種算法處理,供本系統(tǒng)使用。而這些數據根據當初測繪、采集等的方式、工具不同而格式不同,這就需要我們認真對待這個數據兼容性。
當然還有很多,諸如圖形運算能力、外圍設備的接口控制能力、海量數據的處理能力等等。我們在選擇虛擬現實引擎系統(tǒng)時候也要跟你據自己的應用方向,綜合考慮其開放性、數據處理能力和后續(xù)開發(fā)的延續(xù)性。