翻譯:VR 設計實務

有時翻譯就是讓自己細看一下,順便推動些什麼。這篇翻譯自 A-frame Best Practices (v0.4.0),遵循原文採 CC:BY-SA 釋出。我不會逐字翻譯,且有些句子可能也照我的想法有輕重程度不同的語氣改寫,有所見意者歡迎歡迎留言或用任何方法告知我改進。


VR 設計

VR 環境裡的設計與平面的體驗大有不同,作為新的媒體自然有些新的典範可以遵從,特別在保持使用者舒適及穩定的部分更是。上述要點已有他人透徹寫下,所以我們也跟著這些綜合的指南走:

有些事情值得一提:

  • 基本黃金準則:永遠別在使用者不預期的情形下,自行控制使用者的鏡頭視角。
  • 長度單位(例如用在位置等處)應以公尺來考量,因為 WebVR API 傳回姿態(pose)資料時採用的單位即為公尺,也以此傳給大部分的鏡頭控制方法。以公尺為單位思量,即可達到預期中的比例。

效能

VR 裡的效能至關重要,畫面更新率(framerate)夠高使用者才能保持舒適。以下有幾個在 A-Frame 環境中增強效能的訣竅:

  • 使用推薦的硬體環境
  • 使用 stats 組件監控各種數值(包括 FPS、節點數、多邊形面數、幾何物件數量、材質數量、重繪呼叫、實體數量等等)。FPS 要試圖提高、其他要試圖降低。
  • 善用 3D 物件管理系統,以便得益自瀏覽器的快取及預讀機制。若算圖速度會比讀入所有物件還慢,就試著在算圖前先載入所有物件。
  • 在許多幾何物件共用同一個材質時,善用幾何物件合併以減少重繪呼叫次數。
  • 若使用物件模型,則可試著將燈光效果直接做進材質上,避免仰賴即時光影運算。
  • 一般說來,場景中用到越少實體與光源越好。
  • 確保材質的解析度為二的次方數(例如 256x256、512x1024 等),避免算圖時還得及時調整材質尺寸。

A-Frame

另外還有些關於 A-Frame 框架的典範:

  • 遵守 Don’t repeat yourself(DRY,不要重複)原則。善用揉合(Mixins)及範本,減少複製-貼上次數,也減少場景中的 HTML 程式碼。
  • 善用實體-組件-系統(ECS)架構。以組件方式開發,程式碼本身表達更明確,更可重複利用程式。

喜歡這篇文章嗎?讓更多人有機會閱讀

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.