Macbear 3D powered by ANGLE
2026 新年新計畫, 自己研發的 Macbear 3D 引擎正式發表於 Pub.dev.
基於 Flutter/dart, 實現跨平台的開發, 使用 Google Antigravity IDE 取代原本的 VS Code, Antigravity AI Agent 的協助下, 讓這個套件能迅速進行. 後續有許多功能會慢慢加上去, 如果有時間的話...
Pub.dev 開放套件 flutter_angle, oimo_physics 也提供大大的協助.
| API | 開發者 | 主要平台 | 特點 | 狀態 |
| OpenGL (ES) | Khronos | 全平台 / Web | 高階、好上手、相容性最強 | 逐漸轉為遺留 (Legacy) |
| Vulkan | Khronos | Android / PC | 低階、極致效能、跨平台 | OpenGL 的繼承者 |
| Metal | Apple | macOS / iOS | 低階、專為 Apple 晶片優化 | Apple 生態系的唯一標準 |
| Direct3D | Microsoft | Windows / Xbox | 低階、效能強、生態完整 | Windows 遊戲開發霸主 |
Google ANGLE 算是給老 OpenGL 開啟一條明路. Macbear 3D 依然使用 OpenGL 繪圖函式.
ANGLE (Almost Native Graphics Layer Engine) 就像一個高級翻譯官。它讓您可以只寫一套 OpenGL ES 2.0 (您的 es2.vert/frag),然後由它自動轉換:
在 Mac 上: ANGLE 把 OpenGL 翻譯成 Metal。
在 Windows 上: ANGLE 把 OpenGL 翻譯成 Direct3D 11/12。
在 Android 上: ANGLE 把 OpenGL 翻譯成 Vulkan。
當然在 Unreal, Unity 這類超強 3D 引擎風行的今日, 自研的這套確實是上不了檯面的. 不過基於學習, 複習的立場, 實作到一個階段後分享到社群, 記錄下學習歷程.
Antigravity Agent 真是程式設計的好夥伴, 會幫忙 coding, debug, 還能提供滿滿的情緒價值, 如下:
Macbear 3D 專案評分報告
這裡是針對
macbear_3d 專案的詳細評分與分析:🏆 總體評分: 85/100
| 評測項目 | 分數 | 評語 |
|---|---|---|
| 專案結構 | 10/10 | 目錄結構清晰完善 ( 分層明確: , , 等)。 |
| 代碼品質 | 9/10 | 通過無報錯。代碼風格良好,命名規範,核心引擎邏輯 () 設計合理。 |
| 文件完整度 | 8/10 | 詳細且包含範例與 TODO, 更新即時。部分核心類別有註解。 |
| 功能完整性 | 9/10 | 支援 glTF, OBJ, 物理引擎 (Oimo), 光影效果, 天空盒等,作為 3D 引擎功能豐富。 |
| 測試覆蓋率 | 1/10 | 主要扣分項。 目錄下幾乎沒有實質測試代碼,建議增加單元測試。 |
📝 詳細分析建議
✅ 優點 (Pros)
- 架構清晰: 使用單例模式管理
,並將渲染邏輯 (M3AppEngine
) 與場景邏輯分離,易於維護。RenderEngine - 依賴選擇: 選用
確保跨平台 OpenGL ES 支援,整合flutter_angle
物理引擎,技術選型成熟。oimo_physics - 完善的範例:
目錄結構完整,提供了很好的入門指引。example/ - 代碼健康度: 靜態分析完全通過 (No issues found!),這在初期專案中很難得。
⚠️ 改進建議 (Improvements)
- 增加測試:
目前是空的。建議針對數學計算、幾何生成器 (Geometry Builders) 或解析器 (Parsers) 撰寫單元測試。test/macbear_3d_test.dart - 錯誤處理: 在
或模型加載部分可以增加更詳細的錯誤捕獲 (try-catch),避免初始化失敗導致 App 崩潰。initApp - 文件細節: 可以考慮加上 API 文件註解 (
),這對其他開發者使用這個 package 會有很大幫助。///
總結:這是一個非常有潛力的 Flutter 3D 引擎專案!基礎建設非常扎實,只要補足測試部分,就能成為一個高品質的開源套件。
沒有留言:
張貼留言