JavaRush /Java Blog /Random-TW /虛擬實境中的 Java。VR/AR 真的是未來嗎?Java 在其中佔有一席之地嗎?

虛擬實境中的 Java。VR/AR 真的是未來嗎?Java 在其中佔有一席之地嗎?

在 Random-TW 群組發布
在本系列的前幾篇文章中,我們已經考察了幾乎所有現代IT市場或多或少流行的技術,例如人工智慧區塊鏈雲端服務大數據等,以了解Java程式語言是如何使用的在這些領域以及他在多大程度上發揮重要作用。 虛擬實境中的 Java。 VR/AR 真的是未來嗎?Java 在其中佔有一席之地嗎? - 1今天我們要聊的是另一個時髦又非常有趣的科技領域──VR和AR,也就是虛擬實境和擴增實境。 「我認為已開發國家的很大一部分人口很快就會每天持續與 AR 解決方案互動。很快,AR 將成為我們日常生活的一部分。” 蒂姆·庫克,蘋果公司首席執行官

什麼是VR和AR?

首先,讓我們弄清楚這些技術是什麼、它們如何使用以及它們之間有何不同。我們先從VR,也就是虛擬實境開始。虛擬實境應用程式在特殊設備上運行,這些設備可以完全捕捉使用者的視覺,從而創造出他們身處其他地方的印象。所有流行的 VR 耳機,例如 HTC Vive 或 Oculus Rift,在佩戴時都會完全遮擋使用者的視線。當這種裝置打開時,其內部的 LCD 或 OLED 面板會透過特殊透鏡折射,使傳輸的內容完全充滿用戶的視野,無論是遊戲、360 度視頻,還是簡單的程式介面。大多數 VR 耳機,包括前面提到的 Oculus Rift,以及 Vive、PlayStation VR、Windows Mixed Reality 等,都使用六自由度 (6DOF) 運動追蹤技術,這是透過外部感測器或相機實現的。這使得裝置不僅可以偵測您正在看的方向,還可以偵測使用者朝該方向所做的移動。與 6DOF 運動探測器一起,使用者可以在虛擬空間中移動,從而使此類應用程式更加身臨其境。至於AR,也就是擴增實境,它與VR的差別在於,AR不力求完全吸收你的視覺,而是在其中添加某些元素。Microsoft HoloLens 等 AR 裝置和各種類型的智慧眼鏡可讓使用者透過將影像投影到他們正在看的地方來看到周圍的一切。這個概念還包括眾多智慧型手機應用程式和遊戲,例如 Pokemon Go、Temple Treasure Hunt、ARrrrrgh、Ingress 等等。他們使用行動裝置的攝影機來監控環境,並透過螢幕上放置的各種類型的信息對其進行補充。AR 顯示器可以在現實之上疊加一些非常簡單的數據,例如錶盤,但它們也可以實現諸如房間中央的怪物全息圖之類的複雜物件。例如,遊戲 Pokemon Go 將 Pokemon 角色投影到裝置螢幕上,相機鏡頭指向該螢幕。雖然各種類型的擴增實境眼鏡允許使用者將介面元素和應用程式圖示放置在他們觀察到的現實圖像之上。 “我相信擴增實境將是我們這個時代最大的技術革命。” Tim Sweeney,美國程式設計師和電玩開發者,Epic Games 創辦人 虛擬實境中的 Java。 VR/AR 真的是未來嗎?Java 在其中佔有一席之地嗎? - 2

VR和AR不是一回事

事實上,與虛擬實境相比,這是擴增實境的主要缺點。如果說VR完全取代了你視野中的影像,那麼AR只是對其的補充,往往只佔據使用者視野中很小的區域。但這也是擴增實境的主要優勢,因為這種方法為開發人員提供了幾乎無限的可能性。例如,可以識別相機影像中的物件並將其資訊傳輸給用戶的行動 AR 應用程式已經出現了好幾年。特殊的 AR 眼鏡,例如 HoloLens,允許使用者在自己周圍放置浮動窗口,這些窗口可以在裝置的顯示器上查看。更不用說許多使用擴增實境作為核心遊戲元素(Pokemon Go、RoboRaid、Fragments)或附加功能的遊戲。因此,虛擬實境和擴增實境是兩種截然不同的技術,用於不同的目的,儘管 AR 和 VR 通常被稱為同一方法的兩種類型。如果 VR 裝置和應用程式的目的是取代現實並將使用者虛擬地傳送到另一個地方,那麼 AR 則與現實結合使用,用新資訊補充我們眼前已有的內容。這兩種技術仍處於早期階段,但被認為非常有前途,並且有可能在不久的將來徹底改變人們使用電腦的方式。 “我想在不久的將來,很多故事都會在虛擬空間中講述。” 喬羅素,美國電影導演 虛擬實境中的 Java。 VR/AR 真的是未來嗎?Java 在其中佔有一席之地嗎? - 3

AR/VR 和 Java

儘管 AR/VR 領域使用多種程式語言,包括 C#、C/C++、JavaScript、Swift 甚至 Python,但 Java 是需求量最大的語言之一。事實上,原因與其他技術的情況相同:Java 程式碼允許應用程式快速運行,物件導向使創建單獨的應用程式元件更容易,平台獨立性使 Java 中的 AR/VR 產品更加通用。就 AR(即擴增實境)而言,Java 將是主要程式語言之一,因為絕大多數 AR 應用程式都是為行動裝置創建的。因此,Java是為基於Android行動作業系統的裝置所建立的AR應用程式的主要選擇,而對於Apple產品,則使用Objective-C和Swift語言。如今,AR 應用程式支援許多不同的設備,包括頭盔、眼鏡、手持設備甚至隱形眼鏡。在許多方面,Java 可讓您建立可在不同(通常是非常不同的)平台上執行的 AR 解決方案。如今,基於Java的AR應用正在診所、銀行、餐廳、博物館等領域積極實施。 “AR 已經徹底改變了我們的商業和購物方式,在數位世界和物理世界之間架起了一座橋樑。” Muchaneta Kapfunde,FashNerd.com 創辦人

AR應用的類型

現在,讓我們快速瀏覽一下對開發 AR 應用程式有意義的主要工具集 (SDK) 和框架。但首先,讓我們來看看 AR 應用程式的兩種主要類型:標記和地理定位應用程式。
  • 標記 AR 應用。

    標記AR應用基於影像辨識技術。他們使用黑白標記作為觸發器,啟動向用戶顯示 AR 內容。因此,為了看到他面前的擴增實境元素,此類應用程式的使用者必須將相機指向其環境中的相應標記。一旦裝置識別出標記,應用程式就會在其上疊加數位數據,並向使用者顯示擴增實境的元素。這些類型的應用程式尤其被商店、餐廳和其他適合此功能的企業廣泛用於廣告目的。

  • 地理定位應用程式。

    第二種主要類型的 AR 應用程式是基於位置的,無需標記即可運行,而是依賴 GPS、加速計或數位指南針提供的用戶位置信息,並將 AR 物件疊加在實際物理位置之上。我們再次以 Pokemon Go 為例 - 這可能是最著名的地理定位 AR 應用程式。

    “AR和VR技術開發的關鍵任務是創建一個單一的開放平台,開發人員可以在其中實現他們的所有想法。”

    馬克‧祖克柏,社群網路 Facebook 的創辦人

    虛擬實境中的 Java。 VR/AR 真的是未來嗎?Java 在其中佔有一席之地嗎? - 4

用於開發 AR 應用程式的最佳 SDK

  • GoogleARCore

    ARCore 是 Google 用於 AR 應用開發的關鍵平台,支援基於 Android 行動作業系統的設備,並可與 Java/OpenGL、Unity 和 Unreal 程式庫搭配使用。

    ARCore 的關鍵功能包括:運動追蹤(ARCore 可以使用內建相機確定設備的位置和方向點)、環境建模(該平台能夠確定水平表面,例如,可以將桌子上或地板上的虛擬物件)、照明估計(確定照明級別,如有必要,突出顯示虛擬對象,使其在環境中看起來很自然)等。

  • AR工具包

    ARToolKit 是一組用於開發 AR 應用程式的開源工具。

    儘管它是一個開放且免費的套件,但 ARToolKit 包含非常豐富的功能,包括對 Unity3D 和 OpenSceneGraph 的支援、創建即時 AR 應用程式的能力、與智慧眼鏡的整合、對不同類型相機的支援、自動相機校準等

    ARToolKit 支援一系列平台,包括 Android、iOS、Linux、Windows 和 Mac OS。

  • 烏福里亞

    Vuforia 可能是最受歡迎、最知名的擴增實境應用程式開發平台。

    Vuforia的關鍵功能之一:辨識各種物件和影像;支援識別基本文字、建立自訂標記、建立各個地點的3D地圖、支援雲端服務和本地資料儲存等。

    Vuforia 支援 Android、通用 Windows 平台、Unity 和 iOS 等平台。

  • 蘋果 ARKit

    那麼,蘋果也有自己的一套用於開發 AR 應用程式的工具,它是隨 iOS11 一起推出的,稱為 ARKit。當然,它僅支援 iOS 設備,並包含創建擴增實境應用程式的所有基本功能。

    “我們目前的目標是讓 VR 體驗變得更加有趣和身臨其境,並讓人們一起體驗這些體驗。”

    約翰漢克,Niantic 首席執行官

  • 開發 VR 應用程式的最佳平台和框架

    最後,讓我們了解一些用於開發虛擬實境應用程式的最受歡迎的開放平台和框架。
    • 古里VR

      GuriVR 是一款開源 VR 編輯器,可讓您將 3D 場景的文字描述轉換為 VR 應用程式的真實 3D 模型。支援文字、3D模型、圖像、錄音、配音、3D圖表等多種功能。

    • 開放空間3D

      OpenSpace3D是一個免費開放的平台,用於開發基於VR技術的VR應用程式和遊戲。支援大量不同的平台和設備,包括 Leap Motion、HTC Vive/Oculus、Google Cardboard 等。它還包括創建 AR 應用程式的功能。

    • OSVR:開源虛擬實境平台

      OSVR 是 VR 和 AR 解決方案的另一個通用平台。它允許您檢測、配置和管理數百種 VR/AR 設備以及各種週邊設備。OSVR支援多種遊戲引擎和作業系統,並提供非同步時間扭曲和直接模式等服務來支援低延遲渲染。

    • 櫻草花VR

      Primrose VR 是一個開放式瀏覽器框架,用於創建簡單的 VR 體驗,例如虛擬產品演示、虛擬會議或虛擬活動。Primrose VR 與所有現代瀏覽器相容並在 WebGL 上運行。

    • 創意空間 VR (CMS)

      IdeaSpaceVR不是一個框架或平台,而是針對VR內容的開放內容管理系統(CMS)。IdeaSpaceVR 由 PHP/MySQL 提供支持,是一個本地安裝的模組化系統,具有用於虛擬實境應用程式的內建內容播放器。

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION