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 引擎專案!基礎建設非常扎實,只要補足測試部分,就能成為一個高品質的開源套件。

2025年12月22日 星期一

Flutter 開發的新紀元:從 AI 助手到底層效能的全面進化

在跨平台行動應用開發的領域,Flutter 憑藉其強大的 UI 渲染能力與 pub.dev 豐富的生態系,早已成為開發者的首選。然而,隨著 Google 近期技術的連番突破,Flutter 的開發體驗正迎來一場深刻的變革。

1. Antigravity IDE:AI Agent 成為你的數位隊友

最新發表的 Antigravity IDE 不僅僅是一個編輯器,它更是 AI Agent 輔助編程的集大成者。傳統的 Copilot 僅能提供代碼補全,而 Antigravity 則能理解整個專案的上下文。

  • 自動化架構設計:透過對話,AI Agent 能直接幫你建構專案底層目錄。

  • 智慧調試:當三方庫出現衝突時,它能自動分析專案依賴並給出修正方案,極大縮短了排查 pub.dev 插件相容性的時間。

2. ANGLE:解放 GPU 渲染的潛力

效能始終是 App 開發的生命線。Google 的 ANGLE (Almost Native Graphics Layer Engine) 技術,成功將 OpenGL ES 呼叫轉換為硬體原生的 API(如 iOS 上的 Metal 或 Windows 上的 Direct3D)。

  • 渲染一致性:開發者現在可以在 Flutter 專案中更穩定地呼叫 OpenGL API,無論在 Android 還是 iOS 上,都能獲得近乎原生且表現一致的 3D 圖形渲染效能。

  • 流暢度提升:這對於需要處理複雜視覺特效或輕量遊戲邏輯的 Flutter App 而言,無疑是效能優化的最後一塊拼圖。

3. 三方支援與未來展望

結合 pub.dev 上數以萬計的成熟插件,開發者現在可以將精力從「撰寫重複代碼」轉向「創造用戶價值」。在 Antigravity 的協作下,導入複雜的三方功能不再痛苦;在 ANGLE 的支撐下,跨平台的視覺表現不再受限。


結語 這是一個屬於 Flutter 開發者的黃金時代。AI Agent 幫我們處理了繁雜的邏輯與配置,而底層技術的演進則確保了極致的運行效率。現在,唯一的限制只剩下開發者的想像力。

2020年2月9日 星期日

NEW Macbear APP website

Welcome to Macbear APP website.

Spend 2 days to create this website. Deploy on Firebase hosting.
花了兩天建立產品網站, 使用 Firebase 服務架設.

2020年1月5日 星期日

No more banner ADS

Ads & Content Overlap 違反 AdMob 規定!

所以免費版中的橫幅廣告 (banner ads) 都移除了,也代表收益會減少吧!

總之就是照著遊戲規則走就是了.

2017年12月22日 星期五

2017 歲末

能持續更新 blog 是個好習慣, 又過了兩年沒更新了...
其實跨平台和 app 的更新一直都默默的在做
主程式碼都是 C++, 跨平台用了 cocos2d-x
-------------------

地球儀與國旗國歌 

iOS version in App Store
Android version in Google Play Store
-------------------

地球儀之城市時計
iOS version in App Store
Android version in Google Play Store
-------------------
Google play 所有下載量, 嗯... 

2015年9月5日 星期六

Clocks of Cities 地球儀之城市時計

Clocks of Cities
Clocks of Cities is available in AppStore.

What time is it? Cities around the world use various clock time by timezone. When New York is daylight, but Tokyo is in night. This app show cities on globe-earth and their clocks. Some city-clock will be adjusted in DST (Daylight Saving Time) period.

現在幾點呢? 全球的城市因為太陽照射的差異而有不同的時區. 當紐約是白天的時候, 台北卻是晚上. 這個 app 將完整的呈現世界各地的時間, 使用日光節約時間的城市也會正確地顯示.