Table of Contents

在進行增強現實開發前選擇一款 3d 引擎

AR 開發的第一步是選擇合適的 3d 引擎,這一章介紹為什麼需要 3d 引擎、AR 開發中常見的 3d 引擎及各自優缺點。

為什麼 ar 需要 3d 引擎

增強現實並不是簡單地在相機畫面上疊加 2d 或 3d 圖像,而是一個即時三維系統,其核心能力可能還包括:

  • 真實相機建模 為了渲染的虛擬物體看起來在現實中更真實,需要根據實際相機畫面使用的參數(例如內外參,畸變模型等)調整用於渲染的 3d 引擎中的攝像機的投影矩陣。

  • 空間坐標系統管理 統一管理設備、環境、AR 內容等之間的位置和姿態,負責世界坐標、相機坐標、設備坐標之間的選擇、設置和轉換。

  • 即時三維渲染 根據即時估計的場景深度或重建的網格實現虛擬物體和環境的真實遮擋效果,根據光照估計算法模擬陰影,實現逼真的虛實融合效果。

  • 資源與生命週期管理 管理虛擬的 AR 資源、內容,覆蓋其加載、展示、卸載等生命週期管理。

這些能力構成了典型 3d 引擎的核心職責。因此根據具體的項目需求,選擇合適的 3d 引擎是快速實現 AR 效果的必要前提之一。

常見的 3d 引擎

EasyAR 支援多種 3d 引擎,包括常見的 3d 引擎如 Unity,Unreal 或者原生開發(Native)。 EasyAR 提供 Unity 和 Native 的樣例及開發文檔。

Unity

Unity 定位通用即時 3d 引擎, 是當前大多數 AR 開發者的第一選擇。Unity 原生支援 Windows/ macOS 以及 iOS / Android / visionOS 等跨平台開發。 Unity 生態成熟,文檔與示例完善。

Native

相較於使用 Unity 等高層封裝引擎,直接基於原生圖形 API(如 OpenGL、Vulkan、Metal)進行 AR 開發的優勢可概括如下:系統依賴少,運行環境可極度精簡,可深度定制相機模型及底層演算法。原生 API 開發,工程成本和維護成本高,缺乏成熟編輯器與調試工具,迭代效率低,跨平台難度大,不利於產品級快速交付,通常用於一些簡單功能的實現。

Web

Web 無需安裝,基於瀏覽器即可使用,分發和觸達成本極低。 天然跨平台,適合快速上線與大規模用戶訪問。 開發門檻相對較低,前端生態成熟。

目前 Web 在 AR 應用中仍然較為受限,主要體現在性能受瀏覽器與安全沙箱限制對運動跟蹤、遮擋、精確光照等 AR 核心能力支援不足,設備能力訪問受限,穩定性和一致性難以保障。 因此 Web AR 適合“輕量展示與行銷”,不適合高精度、強交互的複雜 AR 應用。

延伸閱讀