楊博?蔡百川?曹芳
摘 要:隨著國家圖書館使用可交互的虛擬數字圖書館系統以后,虛擬現實技術在圖書館中的應用也越來越被重視。虛擬技術的應用可以為圖書館增添了新的多維感觸和人機交互方式。但現階段虛擬現實技術在圖書館應用中遇到了虛擬現實技術設備商業化程度不高、視景生成技術自身還不夠成熟等問題,因此圖書館應積極關注虛擬現實技術、兩種視景生成技術交互使用,推廣虛擬現實技術。
關鍵詞:虛擬現實技術;圖書館;Unity3D
1 虛擬現實技術概述
虛擬現實是由高速計算機系統創建的一種令人感到身臨其境、可以獲得與環境交互體驗的虛擬世界,它將計算機處理的數字化信息變為人們所能感受的具有各種表現形式的多維信息,通過視、聽、觸覺等作用于使用者,對使用者的控制行為做出動態的交互反應。沉浸感、交互性、思維構想性是虛擬現實的主要特點。
沉浸感,指用戶作為主角存在于虛擬環境中的真實程度。理想的虛擬環境應該達到使用戶難以分辨真假的程度,甚至超越真實;交互性,指用戶對虛擬環境內的物體的可操作程度和從環境得到反饋的自然程度;思維構想性,指用戶沉浸在多維信息空間中,依靠自己的感知和認知能力全方位地獲取知識,發揮主觀能動性,尋求解答,形成新的概念。
2 虛擬現實技術在圖書館的應用
虛擬現實技術最主要的就是導讀功能。引導讀者去閱讀那些質量比較好的文獻,使得讀者更有閱讀的欲望,與此同時,也不斷的增強著讀者的閱讀能力。虛擬現實技術作為基于自然的人機界面,強調以人為中心,讓讀者身臨虛擬現場,對信息分類組織和服務內容一目了然,以最短時間、能最大限度地滿足自身的信息需求,因此有必要在圖書館界推廣虛擬現實技術。
在虛擬現實系統中,首先要建立對象物體的幾何模型,確定其空間位置和幾何元素的屬性,然后在其基礎上進行模型創建為了增強虛擬場景的真實性。建設圖書館虛擬場景, 不僅可以實現圖書館場景漫游,同時可以將圖書的上架整理、架位的調整、閱覽室位置的選擇等具體工作,以虛擬場景的形象展示出來,方便館員的工作,節省實物調整設計時所消耗的人力物力。漫游動畫技術,主要通過對現實空間采樣圖像序列生成新視景的圖像。首先在源場景中布置,燈光,設置材質,然后設置相機動畫再渲染出序列幀,最后再后期合成視頻。用戶可以通過視頻動畫來瀏覽圖書館,其中應用最廣的是虛擬漫游和交互技術,我們把場景,燈光,材質做好以后。用戶可以通過鍵盤或鼠標進行上下、左右的移動,選擇自己的視角,對該場景進行360度視角實時的任意虛擬瀏覽。
3 關鍵技術
3.1.場景建模技術
對于場景建模有兩種方式,一種是利用Unity3D本身的功能建模,另一種是從外部導入模型,以導入3dmax軟件的模型來說,可以直接將.max文件存入到Unity3D項目文件夾中,或者將其導出.fbx的文件格式.被導入的信息包括物體的空間位置,名稱材質,動畫等。
圖書館模型構建是包括館內和館外的地形、建筑物以及圖書館工具。地形和建筑在有了具體的數據之后,可以在3DMAX 中構建,館內環境部分主要包括大廳的吧臺、隔斷、查詢機、書架、書等館外環境部分主要包括天空、樹木和花草,這些在unity3d中有多種模型供選擇。在模型的構建中需要注意的是多邊形模型的優化.一個虛擬圖書館系統還是比較大的,對模型充分的優化可以減小最后網絡文件的大小,利于用戶瀏覽. 除模型優化外,在貼圖上除了要注意盡量真實,還應注意貼圖的命名不能用中文,以免日后不能識別。此系統中部分模型如下:
3.2 交互技術
漫游是虛擬圖書館的關鍵, 交互是實現漫游的方式.簡單的交互用JavaScript就可以實現,比如我們在任何漫游系統中都要用到的鼠標按鍵行走功能,在unity3d中是可以以WSAD分別實現上下左右,相對應的代碼在FPScontral.js腳本語言中,從文件的命名FPScontral就可以看出這是第一人稱視角控制,下面例舉向前行走的代碼:
function Update () {
if(Input.GetKey(KeyCode.W)){
transform.Translate(Vector3.forward *
Time.deltaTime * -speed);}
}
另一種重要的交互功能是GUI 界面設計,在虛擬圖書館中,可以選擇自動導航、手動導航和退出導航按鈕,根據選擇進入場景,實現相應的漫游模式.這也需要代碼實現跳轉場景的功能。
以“自動導航”的代碼為例,具體如下:
function OnGUI(){
if(menuShow==false){
return;}
if (GUI.Button (Rect
(Screen.width/2-30,Screen.height/2-50, 80, 30
),"自動導航")) {
print ("You clicked the button!");
Application.LoadLevel(1);
menuShow=false;
}}
3.3 碰撞檢測技術
碰撞檢測最基本的是模擬現實環境中的物體在遇到障礙物時發生的本能反應,比如遇到墻壁時,不能前行,好的碰撞檢測對一個漫游系統的基本條件。在Unity3D中也可以在腳本語言中實現控制:
function OnCollisionEnter(obj:Collision){
Debug.Log(obj.gameObject.name);}
4 虛擬視景生成技術存在的問題
目前在虛擬漫游動畫和虛擬交互方面還有這很大的區別,主要的就是場景的真實感,由于收到模型面數的限制再虛擬交互的場景中模型面數較少,所以場景的真實性不如漫游,但它的優點是用戶可以在場景中隨心所欲地“漫步”。漫游動畫追求真實感我們可以再3Ds max中制作,對模型的面數相對不是很高,這樣做出的模型就很真實,但是它的缺點是用戶只能根據制作者設置的路徑進行觀看,用戶不能隨心所欲地“漫步”其中,交互感差。在解決如何構造既可以實時交互,同時又具有沉浸感的虛擬現實環境方面存在很多問題。要實現實時虛擬交互,場景的面數就會增多,否則用戶就會感到畫面不平滑,而目前的硬件狀況,只有高性能的圖形工作站才能滿足以上要求。因此構建能夠實現實時交互的虛擬場景,存在著編程量大,對計算機的硬件要求高等問題。
5 結語
虛擬現實技術作為一門集合了各種高新技術的交叉學科,通過發揮其沉浸性、交互性和想象性三大主要特征,為圖書館工作的各個環節帶來革命性的變化。因此針對圖書館中應用虛擬現實技術所存在的問題時,圖書館界應以積極的態度,高度關注虛擬現實技術的發展。各圖書館應根據本館實際情況,探索如何將虛擬現實技術與本館工作有機結合。
參考文獻
[1]李雪,虛擬現實技術在國家圖書館的應用,科技情報開發與經濟,2009(19):27-28.
[2]馮鳳娟.永豐大廈虛擬漫游數字平臺的設計與實現.北京:北京交通大學,2010.