各位關心 Flutter 與跨平台 3D 開發的夥伴們,很高興向大家宣布:Macbear 3D 渲染引擎 v0.10.1 正式發佈!🎉
Macbear 3D 是專為 Flutter 打造的高效能輕量級 3D 渲染引擎,底層基於 Google ANGLE (OpenGL ES 3.0)。在經歷了 v0.9.x 的架構沉澱與地形系統基礎建設後,v0.10.1 帶來了幾項里程碑等級的重大突破: 聚光燈與聚光燈陰影貼圖 (Spotlight & Spot Shadow Mapping)、多級地形細節 (LOD) 與無縫邊緣縫合 (Stitching)、全面升級的 Rapier 物理展示場景,以及 glTF 解析器的模組化重構。
▲ 支援聚光燈、動態陰影、多光源與 PBR 渲染的 Macbear 3D 引擎畫面
🌟 v0.10.1 重點更新深度解析
1. 🔦 聚光燈與聚光燈陰影貼圖 (Spotlight & Spot Shadow Mapping)
在 v0.9.3 實現了多點光源優化之後,許多開發者引頸期盼的「探照燈 / 聚光燈」終於正式登場!
- 錐體光束與平滑邊緣:新增
M3SpotLight,具備精確的內切角 (inner cutoff) 與外切角 (outer cutoff),提供自然的邊緣柔和過渡與基於距離的衰減模型。 - 聚光燈動態陰影:實作了專屬的聚光燈陰影貼圖矩陣轉換 (Shadow Matrix) 與視錐透視投影。
- 共用 PCF 濾波著色器:聚光燈陰影與現有的平行光陰影共享高效的 PCF (Percentage Closer Filtering) 柔和陰影核心演算法 (
LightFS.es3.glsl,ShadowFS.es3.glsl,ShadowVS.es3.glsl),不僅消除了鋸齒,也兼顧了效能與記憶體開銷。
2. 🏔️ 地形 LOD (Level of Detail) 與防裂縫邊界縫合 (Edge Stitching)
在大型室外場景中,若全地圖都以高解析度網格渲染,對 GPU 頂點處理將會是沉重的負擔。瓦片地形系統 (Tiled Terrain) 迎來了關鍵升級:
- 四級 LOD 網格切換:地形瓦片現在支援動態解析度等級(32×32 → 16×16 → 8×8 → 4×4 網格面數遞減)。遠處瓦片大幅減少面數,近處保持細膩起伏。
- 邊界無縫縫合 (Edge Stitching):當高解析度 Tile 與低解析度相鄰 Tile 拼接時,傳統技術容易出現因頂點無法對齊而形成的露底「裂縫 (T-Junction gaps)」。Macbear 3D 在邊界頂點處進行了自動約束縫合運算,保證視角推移時地表依舊無縫貼合。
3. ⚙️ Rapier 物理引擎全面整合與五大經典範例場景
為了展現與高效能物理引擎 Rapier3D (結合 rapier_physics) 的深度整合,本次重構了物理引擎的架構,並一口氣增加了 5 個完整的經典物理示範:
- 雙擺系統 (DoublePendulumScene):展現剛體關節約束 (Joints) 與高敏混沌運動的高精確模擬。
- 牛頓擺 (NewtonCradleScene):精準的彈性碰撞衝量傳遞與動量守恆展現。
- 複合碰撞體 (CompoundScene):展示多個 Collider 組合成單一剛體的物理動態。
- 射線與場景查詢 (SceneQueryScene):示範 Raycast 射線檢測與空間查詢能力。
- 架構簡化:將常用的空間圍牆與邊界防護生成機制收斂至
BaseScene,大幅降低開發者編寫物理場景的樣板程式碼。
4. 📦 glTF 解析器架構模組化重構
原本集中的 glTF 載入邏輯完成了全面解耦重組:
- 拆分為
M3GltfDocument、M3GltfNode、M3GltfMesh、M3GltfMaterial與M3GltfAnimation獨立領域物件。 - 程式碼可讀性、維護性與記憶體模型大幅提升,為後續擴充自訂材質延伸規格 (KHR Extensions) 與更複雜的骨骼動畫奠定了穩固地基。
- 同時將 Flutter 相容版本更新支援至 3.47.0。
5. ☕ 贊助專案與社群支持
Macbear 3D 是個人歷經無數個夜晚與週末打造的開源專案。在此版本中正式加入了 Ko-fi 贊助連結 與徽章。如果您覺得這個專案對您的 Flutter 3D 專案有所啟發或幫助,非常歡迎透過 Ko-fi 請作者喝杯咖啡,這將會是推動專案持續前進的巨大動力!☕
🚀 快速升級指南
在您的 pubspec.yaml 中更新至最新版本:
dependencies:
macbear_3d: ^0.10.1
🌐 相關連結與資源
- 📦 pub.dev 套件:https://pub.dev/packages/macbear_3d
- 🌐 GitHub 開源儲存庫:https://github.com/macbearchen/macbear_3d
- 🎮 線上 Web 實機展示 (Live Demo):https://macbearchen.github.io/macbear_3d/
- ☕ Ko-fi 贊助作者:https://ko-fi.com/macbearchen
感謝所有關注 Macbear 3D 的開發者!Happy Coding with Flutter & 3D!