2026年1月2日 星期五

 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)
VulkanKhronosAndroid / PC低階、極致效能、跨平台OpenGL 的繼承者
MetalApplemacOS / iOS低階、專為 Apple 晶片優化Apple 生態系的唯一標準
Direct3DMicrosoftWindows / 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目錄結構清晰完善 (
lib/src
 分層明確: 
engine
geom
shaders
 等)。
代碼品質9/10
dart analyze
 通過無報錯。代碼風格良好,命名規範,核心引擎邏輯 (
M3AppEngine
) 設計合理。
文件完整度8/10
README.md
 詳細且包含範例與 TODO,
CHANGELOG.md
 更新即時。部分核心類別有註解。
功能完整性9/10支援 glTF, OBJ, 物理引擎 (Oimo), 光影效果, 天空盒等,作為 3D 引擎功能豐富。
測試覆蓋率1/10主要扣分項
test/
 目錄下幾乎沒有實質測試代碼,建議增加單元測試。

📝 詳細分析建議

✅ 優點 (Pros)

  1. 架構清晰: 使用單例模式管理 
    M3AppEngine
    ,並將渲染邏輯 (
    RenderEngine
    ) 與場景邏輯分離,易於維護。
  2. 依賴選擇: 選用 
    flutter_angle
     確保跨平台 OpenGL ES 支援,整合 
    oimo_physics
     物理引擎,技術選型成熟。
  3. 完善的範例
    example/
     目錄結構完整,提供了很好的入門指引。
  4. 代碼健康度: 靜態分析完全通過 (No issues found!),這在初期專案中很難得。

⚠️ 改進建議 (Improvements)

  1. 增加測試
    test/macbear_3d_test.dart
     目前是空的。建議針對數學計算、幾何生成器 (Geometry Builders) 或解析器 (Parsers) 撰寫單元測試。
  2. 錯誤處理: 在 
    initApp
     或模型加載部分可以增加更詳細的錯誤捕獲 (try-catch),避免初始化失敗導致 App 崩潰。
  3. 文件細節: 可以考慮加上 API 文件註解 (
    ///
    ),這對其他開發者使用這個 package 會有很大幫助。

總結:這是一個非常有潛力的 Flutter 3D 引擎專案!基礎建設非常扎實,只要補足測試部分,就能成為一個高品質的開源套件。

沒有留言:

張貼留言