WebAR 入門:用手機瀏覽器建立第一個 AR 體驗
唔使寫 App、唔使學 Swift/Kotlin、唔使上架 App Store。
只需一個 HTML 檔案 + 一個 3D 模型,10 分鐘內你就可以用手機鏡頭將虛擬物件「放」喺現實世界。
🎯 呢篇教學你會學到
- WebAR 係咩?點解佢比 App AR 更適合品牌/教育/零售
- 用 model-viewer(Google 開源工具)加入 AR 功能
- 寫一個完整嘅 HTML 頁面,手機一開即用到 AR
- 將 3D 模型放喺「現實世界」— 唔使裝 App
零基礎都 OK:呢篇教學假設你識基本 HTML(識 copy & paste 就得),唔需要任何 3D 或 AR 開發經驗。
📦 事前準備(5 分鐘)
- 一部手機(iPhone 或 Android 都得)— WebAR 需要手機鏡頭
- 一個 Text Editor(VS Code、Notepad、Sublime Text 都得)
- 一個 3D 模型(.glb 格式)— 下面會教你點攞到免費模型
去邊度攞免費 3D 模型?
推薦以下來源,全部都係免費 + 可商用:
- Sketchfab(sketchfab.com)— 搜「glb」或「glTF」,大量 CC 授權模型
- Google Poly 替代— 用 model-viewer 官方範例模型:
https://modelviewer.dev/shared-assets/models/Astronaut.glb - Poly Pizza(poly.pizza)— 低面數 free 模型,專為 Web 設計
快手做法:直接用 Google 官方 Astronaut.glb 做測試。之後再換你自己嘅模型。
🔧 Step-by-Step 實戰
建立 HTML 檔案
開你嘅 text editor,create 一個新檔案叫 webar-demo.html,paste 以下基本結構:
<!DOCTYPE html>
<html lang="zh-Hant">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>我嘅第一個 WebAR 體驗</title>
<!-- 載入 model-viewer -->
<script type="module"
src="https://ajax.googleapis.com/ajax/libs/model-viewer/4.0.0/model-viewer.min.js">
</script>
</head>
<body>
<h1>用 AR 睇模型 👇</h1>
<model-viewer
src="https://modelviewer.dev/shared-assets/models/Astronaut.glb"
ar
ar-modes="webxr scene-viewer quick-look"
camera-controls
tone-mapping="neutral"
shadow-intensity="1"
style="width: 100%; height: 500px;">
</model-viewer>
</body>
</html>
重點:上面嘅 <script type="module"> 一定唔可以漏 — 佢係載入 model-viewer 嘅關鍵。
理解關鍵屬性
上面段 code 入面有幾個重要屬性,逐個解釋:
src="..."— 你嘅 3D 模型路徑(.glb 或 .glTF 格式)ar— 啟用 AR 模式(冇呢個就只可以 3D preview,唔可以 AR)ar-modes="webxr scene-viewer quick-look"— 支援三種 AR 模式:- webxr:Android Chrome 原生支援
- scene-viewer:Android ARCore
- quick-look:iOS ARKit(iPhone)
camera-controls— 俾用戶用手指旋轉/縮放模型
iPhone 用戶會見到「Quick Look」按鈕;Android 用戶會見到「View in your space」按鈕。兩個都可以將模型放喺現實環境。
加 AR 啟動按鈕(更友好嘅 UX)
預設嘅 AR 按鈕比較細,加一個自訂按鈕令用戶更清楚點玩:
<model-viewer
id="my-model"
src="https://modelviewer.dev/shared-assets/models/Astronaut.glb"
ar
ar-modes="webxr scene-viewer quick-look"
camera-controls
tone-mapping="neutral"
shadow-intensity="1"
style="width: 100%; height: 500px;">
<!-- 自訂 AR 按鈕 -->
<button slot="ar-button" style="
position: absolute;
bottom: 20px;
left: 50%;
transform: translateX(-50%);
background: linear-gradient(135deg, #a78bfa, #8b5cf6);
color: white;
border: none;
border-radius: 2rem;
padding: 12px 28px;
font-size: 16px;
font-weight: 600;
cursor: pointer;
">
📱 喺現實世界睇
</button>
</model-viewer>
slot="ar-button" 係 model-viewer 嘅特殊屬性 — 任何有呢個 slot 嘅 element 會自動變成 AR 啟動掣。
部署上網(一定要 HTTPS!)
WebAR 一定要經 HTTPS 先用到(瀏覽器安全限制)。三個最簡單嘅部署方法:
- GitHub Pages(免費)— 將 html + .glb push 上 GitHub,開 Pages 即搞掂
- Netlify / Vercel(免費)— drag & drop 個 folder 上去就 deploy 完
- ngrok(免費測試用)— localhost tunnel,開發階段測試用
# 方法 3:ngrok 快速測試(電腦要裝 ngrok)
ngrok http 8080
# 佢會俾個 https://xxx.ngrok.io 你,手機開呢個 URL 即用到
常見錯誤:用 http://localhost 或 http://192.168.x.x 開係唔會有 AR 掣嘅。一定要 https://。
進階:加 Poster(未入 AR 前顯示縮圖)
模型未 load 好之前,加張 placeholder 圖令頁面靚啲:
<model-viewer
src="Astronaut.glb"
poster="astronaut-preview.webp"
ar
ar-modes="webxr scene-viewer quick-look"
camera-controls
style="width: 100%; height: 500px;">
</model-viewer>
加埋 reveal="auto" 可以令模型 fade-in 出現:
<model-viewer src="Astronaut.glb" poster="preview.webp"
reveal="auto"
ar ar-modes="webxr scene-viewer quick-look"
camera-controls></model-viewer>
📋 完整最終版程式碼
將以上所有嘢整合,呢個係你嘅最終 HTML:
<!DOCTYPE html>
<html lang="zh-Hant">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>我嘅第一個 WebAR 體驗</title>
<!-- Model-Viewer -->
<script type="module"
src="https://ajax.googleapis.com/ajax/libs/model-viewer/4.0.0/model-viewer.min.js">
</script>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
background: #0a0a0a;
color: #F2F5FC;
font-family: system-ui, sans-serif;
min-height: 100dvh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 1rem;
}
h1 {
font-size: 1.5rem;
margin-bottom: 0.5rem;
text-align: center;
}
.subtitle {
color: #AEB5C5;
font-size: 16px;
margin-bottom: 1.5rem;
text-align: center;
}
model-viewer {
width: 100%;
max-width: 400px;
height: 500px;
border-radius: 1rem;
overflow: hidden;
background: #111;
}
.ar-btn {
position: absolute;
bottom: 24px;
left: 50%;
transform: translateX(-50%);
background: linear-gradient(135deg, #a78bfa, #8b5cf6);
color: white;
border: none;
border-radius: 2rem;
padding: 14px 32px;
font-size: 1rem;
font-weight: 600;
cursor: pointer;
box-shadow: 0 4px 20px rgba(167,139,250,0.3);
}
.powered {
margin-top: 1rem;
font-size: 14px;
color: #505258;
}
.powered a { color: #a78bfa; text-decoration: none; }
</style>
</head>
<body>
<h1>🛸 太空人喺你間房!</h1>
<p class="subtitle">撳下面按鈕,將 3D 太空人放喺現實世界</p>
<model-viewer
src="https://modelviewer.dev/shared-assets/models/Astronaut.glb"
poster="https://modelviewer.dev/shared-assets/models/Astronaut.webp"
reveal="auto"
ar
ar-modes="webxr scene-viewer quick-look"
camera-controls
tone-mapping="neutral"
shadow-intensity="1">
<button slot="ar-button" class="ar-btn">
📱 喺現實世界睇太空人
</button>
</model-viewer>
<p class="powered">
Powered by <a href="https://modelviewer.dev" target="_blank">model-viewer</a>
· 3D Model by Google
</p>
</body>
</html>
Copy 上面段 Code → Save 做 .html → Deploy 上 HTTPS → 手機開 → 搞掂!
你已經完成咗人生第一個 WebAR 專案 🚀
🔍 WebAR vs App AR:點解揀 WebAR?
| 比較 | WebAR 📱 | App AR 📲 |
|---|---|---|
| 需唔需要下載 | ❌ 唔使 | ✅ 要裝 App |
| 開發時間 | 1 日 | 2-4 星期 |
| 開發成本 | 低 / 免費 | HK$50K+ |
| 分享方式 | 一條 Link | App Store 上架 |
| 適合場景 | 行銷 / 活動 / QR Code | 遊戲 / 複雜互動 |
| 支援平台 | iOS + Android | 通常要分平台 |
🌐 真實應用案例
- 零售品牌:顧客 scan QR Code → 用手機 AR 睇產品 3D 模型,試擺喺屋企(IKEA 玩法)
- 展覽活動:賓客用手機對住海報 → 角色跳出嚟互動(Anpassa AR 酒樽案例)
- 教育機構:學生用平板對住課本 → 3D 心臟模型浮出嚟,可以旋轉睇
- 餐廳:scan 餐牌 QR Code → 甜品 3D 展示喺枱面
🚀 下一步:你可以點進階?
- 換自己嘅 3D 模型 — 用 Blender export .glb(下一篇教學會 cover)
- 加動畫 — model-viewer 支援
animation-name屬性,可以播 built-in animation - 加熱點(Hotspot) — 喺模型上面加 clickable 標籤,適合產品展示
- 影像追蹤 AR — 用 8th Wall 或 MindAR 做 image-target AR(對住海報出動畫)
📚 相關教學
- ← 返去教學總覽 — 更多 AR/VR/AI 實戰教學
- 香港企業藝術科技完整指南 — 了解 AR 喺香港商業嘅應用
- Anpassa AR 酒樽案例 — 真實 WebAR 品牌案例
關於作者
多元智趣團隊 — 理工大學班底,專注 AR/VR/AI 沉浸式體驗策劃。曾為超過 120+ 企業客戶提供藝術科技方案及實戰培訓。