跳去內容

虛擬實境

出自維基百科,自由嘅百科全書
(由VR跳轉過嚟)
一個人戴住 VR 頭罩嚟體驗一個虛擬世界

虛擬實境粵拼heoi1 ji5 sat6 ging2英文virtual reality,縮寫 VR)係指用電腦模擬出一個虛擬世界用家體驗。喺廿一世紀初,虛擬實境嘅標準做法係俾用家戴住個特製嘅頭罩—個頭罩會向用家對顯示個虛擬世界嘅影像,而且個罩仲內置咗感應器曉感應用家嘅郁動,每當用家郁嗰陣,虛擬實境裏面嘅景物就會跟住郁,令用家覺得自己好似置身响個虛擬世界入面噉[1][2]

虛擬實境係一種相當複雜嘅技術:虛擬實境包含咗硬件嘅部份,淨係個頭罩經已要用到陀螺儀同感應器,感應用家身體各部份嘅郁動—冇咗呢啲資訊,部電腦就唔能夠知道應該要點改變顯示嘅影像[3];虛擬實境又包括埋軟件嘅部份—虛擬實境要有返個程式,教部電腦知「個虛擬世界係點嘅樣」同埋「個虛擬世界會點樣對用家嘅行為有反應」等嘅資訊[4]

喺廿一世紀初,虛擬實境有相當廣泛嘅用途:虛擬實境可以攞嚟做教育嘅用途,例如軍訓上就會用虛擬實境,嚟向受緊訓嘅士兵更加真實噉展示戰場係點嘅樣嘅[5];而且虛擬實境喺娛樂上都會用到—電子遊戲產業亦都好有興趣想採用虛擬實境嘅技術,覺得靠虛擬實境有可能創造出令玩家有極高投入感嘅遊戲,形成咗虛擬實境遊戲呢種電子遊戲類型,例子可以睇吓 PlayStation VR [6]

概論

[編輯]

軟件

[編輯]
一個旋轉緊嘅三維模型;個模型由好多個細少嘅簡單立體物件(立方體錐體等等)組成。

一個虛擬實境程式主要要做到兩樣嘢:

  • 記住個虛擬世界係點嘅樣:喺最基本上,一個 VR 虛擬世界會由若干個立體模型組成,部電腦會記住個世界「有邊啲立體模型」同埋「每個模型喺邊個位置」噉嘅資訊;舉個簡單例子說明,以下呢段 VRML (VRML 係一種廿世紀常用嘅程式語言,專門用嚟整立體模型)代表咗一個喺一條好幼嘅藍色圓柱上面嘅紅色球體(即係好似珍寶珠噉嘅形狀)[7]
    Shape {     // 整一件物體出嚟。
       geometry Cylinder {    // 設佢形狀係「圓柱體」。
          radius 0.1
          height 3.0}    // 碌圓柱嘅高度係 3.0 個單位,但係半徑得嗰 0.1 個單位—係一碌好幼嘅圓柱。
       appearance Appearance {
          material Material { diffuseColor 0.1 0.1 0.9 }     // 設佢色水係藍色。
       }
    }
    
    Transform {     // 整一件新物體
       translation 0 2.5 0     // 將佢移去第一件物體 2.5 單位噉高嘅高度。
       children [
          Shape {
             geometry Sphere { radius 1 }     // 設佢形狀係「球體」,半徑係 1 個單位。
             appearance Appearance {
                material Material { diffuseColor 1 0 0 }     // 設佢色水係紅色。
             }
          }
         ]
    }
    
    —呢段碼係一個簡單嘅例子,複雜啲嘅虛擬世界閒閒地可以有成幾千幾萬行呢啲噉嘅碼[8]。除咗 VRML 之外,喺廿一世紀初,Unity 等嘅遊戲引擎亦都有功能俾用家攞嚟製作虛擬實境用嘅虛擬世界[9]
2007 年一個用三維電腦圖像整嘅立體虛擬世界
  • 記住個虛擬世界會點樣同用家互動:一個 VR 虛擬世界仲需要能夠對用家俾嘅 input 俾反應;舉個簡化嘅例子嚟說明,想像家陣整一隻 VR 遊戲嘅虛擬世界,隻遊戲嘅設計師想俾玩家冒險搵寶藏,個虛擬世界入面有一個個寶箱,每個寶箱都有返個立體模型表示佢嘅樣,同時又有類似以下噉嘅虛擬碼令佢曉對用家俾反應[10]
          IsOpen 呢個變數,呢個數值得真(1)同假(0)兩個可能值;
         
         如果感應到用家掂到個寶箱...
             isOpen = !isOpen; // IsOpen 嘅值如果係 1 就變 0,如果係 0 就變 1
    
         void Update(){ // 每一刻時間都做以下嘅嘢..
             if(isOpen) // 如果 IsOpen = 1...
                 {
                 播「個寶箱閂埋」嘅動畫;
                 }
             if(!isOpen) // 如果 IsOpen = 0...
                 {
                 播「個寶箱打開」嘅動畫;
                 }
         } // 呢個係個簡化例子,現實用嘅 VR 碼會複雜好多。
     }
    
2014 年一個虛擬世界裏面嘅寶箱

硬件

[編輯]

心理影響

[編輯]

投入感

[編輯]
内文:投入感

遙存感

[編輯]
内文:遙存感

睇埋

[編輯]

文獻

[編輯]

[編輯]
  1. Zheng, J. M., Chan, K. W., & Gibson, I. (1998). Virtual reality. Ieee Potentials, 17(2), 20-23.
  2. Vince, J. (2004). Introduction to virtual reality. Springer Science & Business Media.
  3. Kelly, Kevin (April 2016). "The Untold Story of Magic Leap, the World's Most Secretive Startup". WIRED.
  4. Brien, M., & Sveistrup, H. (2011). An intensive virtual reality program improves functional balance and mobility of adolescents with cerebral palsy. Pediatric Physical Therapy, 23(3), 258-266.
  5. Lele, A. (2013). Virtual reality and its military utility (PDF). Journal of Ambient Intelligence and Humanized Computing, 4(1), 17-26.
  6. Zyda, M. (2005). From visual simulation to virtual reality to games. Computer, 38(9), 25-32.
  7. Sikos, L. F. (2016). Rich Semantics for Interactive 3D Models of Cultural Artifacts. Communications in Computer and Information Science. 672.
  8. VRML Annotated Reference 互聯網檔案館歸檔,歸檔日期2007年1月9號,..
  9. VR overview. Unity Manual.
  10. MonoBehaviour.OnMouseUp(). Unity Manual.