使用 JavaScript 構建增強現實 (AR) Web 應用程式
增強現實 (AR) 徹底改變了我們與數字內容互動的方式,將虛擬世界與現實世界無縫融合。它已在各個領域得到應用,包括遊戲、教育、電子商務和工業培訓。AR 提供身臨其境且互動性強的體驗,增強使用者參與度併為企業和開發人員開闢新的可能性。隨著 Web 技術的進步,現在可以使用 JavaScript 直接在瀏覽器中建立 AR 體驗,使其能夠被更廣泛的受眾訪問。在本文中,我們將探討使用 JavaScript 構建 AR Web 應用程式的過程,以及程式碼示例和詳細說明。
設定開發環境
要開始構建 AR Web 應用程式,我們需要設定我們的開發環境。JavaScript 作為一種多功能的程式語言,被廣泛用於 Web 開發。它允許開發人員為使用者建立互動且動態的體驗。您將需要一個文字編輯器或整合開發環境 (IDE) 來編寫您的 JavaScript 程式碼。選擇一個適合您偏好的編輯器,並提供語法高亮和程式碼建議等功能。
除了文字編輯器/IDE 之外,您還需要一個 Web 瀏覽器來執行和測試您的 AR Web 應用程式。大多數現代瀏覽器(如 Chrome、Firefox 和 Safari)都支援 AR 所需的技術,包括 WebGL 和 WebRTC。確保您使用的是更新版本的瀏覽器,以確保與最新的 Web 標準相容。
要開始,請按照以下步驟操作 -
安裝您選擇的文字編輯器或 IDE(例如,Visual Studio Code、Sublime Text 或 Atom)。
為您的專案建立一個新目錄。
在您選擇的文字編輯器/IDE 中開啟該目錄。
在專案目錄中建立一個 HTML 檔案(例如,index.html)和一個 JavaScript 檔案(例如,app.js)。
將 AR.js 新增到您的專案中
AR.js 是一個流行的 JavaScript 庫,它簡化了在瀏覽器中建立 AR 體驗的過程。它提供了一套方便的工具和功能,可以將 AR 功能整合到您的 Web 應用程式中。要將 AR.js 包含到您的專案中,您有兩個選擇:直接下載庫或利用內容分發網路 (CDN)。為簡單起見,我們將使用 CDN 方法,它允許我們輕鬆地從遠端伺服器訪問庫。
要在您的專案中使用 AR.js,您可以從官方網站(https://ar-js-org.github.io/AR.js-Docs/)下載庫,也可以透過內容分發網路 (CDN) 包含它。為簡單起見,讓我們使用 CDN 方法 -
在您的文字編輯器/IDE 中開啟您的 index.html 檔案。
將以下指令碼標籤新增到 HTML 檔案的頭部部分。
<script src="https://cdn.jsdelivr.net/npm/ar.js@2.3.0/build/ar.js"></script>
透過使用指令碼標籤在 HTML 檔案中包含 AR.js 庫,您可以訪問其廣泛的功能。AR.js 利用計算機視覺演算法來識別和跟蹤標記,這些標記充當 AR 內容的錨點。這些標記可以是列印的圖案或 AR 應用程式透過裝置攝像頭識別的物理物件。
建立 AR 場景
設定了 AR.js 庫後,我們現在可以建立一個基本的 AR 場景。在本例中,我們將在標記上渲染 3D 模型。標記是 AR.js 識別的預定義圖案,允許我們將數字內容疊加到現實世界中。
在您的 index.html 檔案中,新增以下標記以建立空場景 -
<body> <a-scene embedded arjs> <a-marker preset="hiro"> <a-entity position="0 0 0" scale="0.05 0.05 0.05" gltf-model="./path/to/your/model.gltf" ></a-entity> </a-marker> <a-camera-static></a-camera-static> </a-scene> </body>
將“./path/to/your/model.gltf”替換為您 3D 模型檔案的實際路徑。
理解程式碼
讓我們分解我們剛剛新增的程式碼並瞭解其用途 -
<a-scene> − 此元素表示 AR 場景,幷包含所有與 AR 相關的內容。
<a-marker> − 此元素定義將渲染 3D 模型的標記。在本例中,我們使用“hiro”標記預設,但您可以探索其他預設,甚至建立您自己的標記。
<a-entity> − 此元素表示 3D 模型。調整 position 和 scale 屬性以定位和調整模型大小。
<a-camera-static> − 此元素定義用於檢視 AR 場景的攝像頭。
測試 AR 應用程式
現在我們已經設定了基本的 AR 場景,讓我們在 Web 瀏覽器中測試我們的應用程式 -
儲存您在 index.html 中的更改,並在 Web 瀏覽器中開啟該檔案。
出現提示時,允許瀏覽器訪問您的網路攝像頭。
將網路攝像頭對準“hiro”標記,您應該會看到 3D 模型在其上渲染。
擴充套件 AR 應用程式
我們到目前為止介紹的示例表示一個帶有靜態 3D 模型的簡單 AR 場景。但是,AR.js 提供了一系列功能和可能性來增強您的 AR 應用程式。
讓我們探索一些進一步擴充套件 AR 應用程式的想法 -
我們到目前為止介紹的示例表示一個帶有靜態 3D 模型的簡單 AR 場景。但是,AR.js 提供了一系列功能和可能性來增強您的 AR 應用程式。讓我們探索一些進一步擴充套件 AR 應用程式的想法 -
互動性 − 透過新增事件偵聽器來檢測使用者互動(如點選或手勢)來使您的 AR 元素具有互動性。您可以觸發動畫、顯示其他資訊或允許使用者操縱 AR 內容。
動態內容 − 您可以根據使用者輸入或外部資料來源動態載入模型或影像,而不是靜態 3D 模型。這允許更具動態性和個性化的 AR 體驗。
基於位置的 AR − 利用使用者的地理位置建立基於位置的 AR 體驗,其中 AR 內容與特定的現實世界位置相關聯。使用者可以探索周圍環境並發現與其物理位置相關的 AR 內容。
多標記 AR − 透過新增多個標記來擴充套件您的 AR 場景,每個標記都會觸發不同的 AR 元素或互動。這為建立具有多個互動式元素的複雜且身臨其境的 AR 體驗提供了可能性。
與 API 整合 − 將您的 AR 應用程式與外部 API 連線以獲取即時資料或合併其他功能。例如,您可以從電子商務 API 獲取產品資訊,並在檢測到相應的標記時將其顯示為 AR 內容。
結論
在本文中,我們探討了使用 JavaScript 構建增強現實 (AR) Web 應用程式的過程。我們討論了 AR 在各個領域的意義以及它透過 Web 技術帶來的可訪問性。我們設定了開發環境,將 AR.js 庫新增到我們的專案中,並在標記上建立了一個顯示 3D 模型的基本 AR 場景。我們還探討了透過互動性、動態內容、基於位置的功能、多標記功能和 API 整合來擴充套件 AR 應用程式的潛力。