Globe Earth - Flags & Anthems & Timezones
2026年4月25日 星期六
Flutter 物理引擎新里程碑:rapier_physics 0.2.0 正式發佈!
如果您正在開發 Flutter 3D 遊戲或需要高效能的物理模擬,那麼您一定不能錯過 rapier_physics。今天,我們很高興地宣布 0.2.0 版本正式發佈!
繼 0.1.0 實現了強大的跨平台(含 Web WASM)基礎架構後,0.2.0 版本帶來了開發者期待已久的諸多核心功能,讓 Flutter 的物理模擬能力提升到了一個全新的層次。
🚀 0.2.0 重點更新一覽
1. 全面的關節系統 (Joints System)
這是本次更新最重大的功能。現在你可以輕鬆建立複雜的機械結構與動力學連結:
- 多種關節類型:支援
FixedJoint(固定)、SphericalJoint(球型)、RevoluteJoint(旋轉)、PrismaticJoint(平移) 及RopeJoint(繩索)。 - 馬達控制 (Motors):為旋轉關節與平移關節加入馬達驅動,輕鬆實現車輪轉動或升降機效果。
- 自定義限制:透過
GenericJoint鎖定特定軸向或設置移動限制。
2. 精準的力學控制 API
我們擴展了對剛體 (RigidBody) 的操作能力,讓操控感更加精確:
- Force & Impulse:新增
addForce、addTorque、applyImpulse及其AtPoint變體,讓你能精確施加衝量於物體的特定位置。 - 速度直接控制:透過
setLinearVelocity與setAngularVelocity實現細粒度的運動控制。
3. 高速移動不再「穿牆」:CCD 支援
針對高速移動的小物體(如子彈),0.2.0 加入了 CCD (Continuous Collision Detection)。只需調用 body.setCCD(true),即可防止物體因速度過快而在單個時步內穿透障礙物。
4. 地形與多樣化碰撞體
- Heightfield (高度場):支援從網格數據生成地形碰撞體,非常適合 3D 賽車或冒險遊戲的地圖。
- Cone (圓錐體):新增圓錐體碰撞支援,完善了基礎幾何形狀庫。
5. 更強大的生命週期管理
- 動態移除:現在可以安全地從
RapierWorld中移除剛體、碰撞體或關節。 - 自動清理機制:當你移除一個剛體時,系統會自動清理其關聯的所有碰撞體與關節,防止內存洩漏。
- 雙向導航:透過
body.colliders與body.joints屬性,在代碼中輕鬆追蹤實體間的關係。
6. 底層引擎升級與穩定性提升
- 底層原生引擎升級至 rapier3d v0.32.0。
- Apple 平台優化:針對 iOS 與 macOS 進行了 FFI 符號導出的精簡與優化,確保 Release 版本穩定運行。
🎨 範例展示:牛頓擺 (Newton's Cradle)
在 0.2.0 的範例程式中,我們新增了一個經典的「牛頓擺」演示。透過 RevoluteJoint 與高精度的碰撞計算,完美呈現了動能傳遞的物理之美。此外,範例現在還支援:
- 調試輔助線 (Debug Wireframe) 顯示。
- 實時陰影與物理參數調整面板。
- 一鍵重置物理世界。
🛠️ 快速開始
在 pubspec.yaml 中添加依賴:
dependencies:
rapier_physics: ^0.2.0
📢 結語
rapier_physics 的目標是為 Flutter 社群提供最專業、跨平台且易用的 3D 物解決方案。0.2.0 版本的發佈是我們邁向「生產環境可用」的重要一步。
如果您有任何建議或遇到問題,歡迎前往 GitHub 倉庫 提交 Issue 或 PR。
讓我們一起為 Flutter 打造更動態的 3D 世界!🚀
2026年4月17日 星期五
Macbear 3D 0.8.0 版本發佈:
- 線上即時演示: Live Demo
大家好!Macbear 3D 正式迎來了 0.8.0 版本的重大更新。這次更新不僅加強了核心引擎的架構,更在跨平台穩定性上有了質的突破。
如果您還沒看過這個專案,Macbear 3D 是一個專為 Flutter 打造的輕量級、高性能 3D 渲染引擎,由 Google ANGLE (OpenGL ES 3.0) 驅動。它旨在讓開發者能夠輕鬆創建驚艷的 3D 體驗與視覺化應用。
🚀 0.8.0 重點更新內容
1. 物理引擎再進化:深度整合 M3OimoPhysics
在此版本中,我們全面遷移到了 M3OimoPhysics。這不僅讓 Oimo 物理引擎的整合更加穩固,也簡化了 3D 幾何體(Primitives)與物理剛體之間的關聯管理。現在設置物理碰撞與動態模擬變得更加直觀且高效。
2. Android 穩定性救星:自動偵測最佳渲染後端
針對 Android 設備碎片化的問題(特別是部分硬體對 Vulkan 支援不穩定的情況),0.8.0 引入了智能渲染後端切換。引擎現在會自動在 Vulkan 與 OpenGLES 之間選擇最穩定的方案,大幅降低了在特定 Android 裝置上的崩潰率,提升了用戶體驗的連貫性。
3. 更豐富的幾何體支援與材質優化
- 高度圖 (Height Field):新增 M3HeightField 與其對應的幾何體支援,讓您可以輕鬆從高度資料生成地形。
- 一鍵設置不透明材質:新增 M3Material.setMatte() API,方便開發者快速配置非反射性的材質,減少 boilerplate 代碼。
- 除錯視覺化工具:新增 M3OctahedralGeom(八面體)用於骨骼、點位的視覺化,並將常用除錯資源納入 M3Resources(如 axisGizmoMesh)。
4. 渲染管線 (Render Pipeline) 強化
我們優化了場景中的 RenderPipeline,增強了對不透明(Opaque)與透明(Transparency)材質的分層處理,確保在複雜場景中能有正確的渲染順序與更好的性能表現。
5. 跨平台相容性優化
為了進一步優化 Web 端的表現並實現更徹底的平台抽象化,我們移除了核心程式碼中對 dart:io 的直接依賴。這使得 macbear_3d 在 Flutter Web 上的運行更加純粹且流暢。
結語
Macbear 3D 致力於讓 Flutter 開發者能以最簡單的方式觸及強大的 3D 渲染技術。這次 0.8.0 的發佈標誌著我們在穩定性與功能性上邁出了一大步。
如果您喜歡這個專案,歡迎到 GitHub 給我們一個 ⭐️ Star: GitHub - macbearchen/macbear_3d
未來我們還有更多關於後處理特效 (Bloom, HDR) 與進階粒子系統的計畫,敬請期待!
#Flutter #Dart #3DEngine #OpenGL #GameDev #Macbear3D
2026年3月20日 星期五
Macbear 3D v0.7.1 發佈:BVH 支援讓你的角色動起來!
我們很高興宣佈 Macbear 3D v0.7.1 正式發佈!這次更新專注於透過專業的動作捕捉數據,為 Flutter 中的 3D 角色注入靈魂。
🏃♂️ 重磅功能:BVH 動作捕捉支援
此版本的核心亮點是原生支援 Biovision Hierarchy (BVH) 格式。你現在可以將專業的動作捕捉數據直接導入 Flutter 應用中。
- BvhParser: 高效解析骨架結構與動畫頻道。
- BvhSkeleton: 全新的骨架管理與動畫驅動系統。
- 即時演示: 看看範例中的 BvhScene_11,感受流暢的空手道旋踢動畫!
🦴 視覺優化:八面體骨架網格
為了協助開發者更直觀地進行骨架除錯,我們引入了 M3OctahedralGeom。這是一款專業級的骨骼視覺化工具,讓你清晰地觀察角色骨架在 3D 空間中的運作情況。
📦 更聰明的資源打包
我們將核心字體資源直接整合進 macbear_3d 套件中。這不僅減少了外部依賴,更確保了在不同平台上手即可用的穩定體驗。
📜 鳴謝與授權
我們為範例資源增加了明確的版權說明。範例中的空手道動作捕捉數據由 mocapdata.com (Eyes, JAPAN Co. Ltd.) 提供,確保社區在尊重創作者的前提下共同進步。
2026年3月4日 星期三
Macbear 3D 引擎 0.7.0 重大更新:全面擁抱 OpenGL ES 3.0 與動態反射技術
大家好!這段時間我們對 Macbear 3D 進行了深度優化與升級,今天很高興向大家宣佈 0.7.0 版本 正式發佈!這次更新不僅是版本號的提升,更是一次底層架構的飛躍。
🚀 核心升級:全面支援 OpenGL ES 3.0
在 0.7.0 版本中,我們正式將底層渲染架構從 OpenGL ES 2.0 升級到了 OpenGL ES 3.0 (GLSL 3.00 ES)。
- 統一著色器架構:我們重新編寫並優化了所有的核心著色器,利用 ES 3.0 的新特性實現了效能與視覺效果的雙重提升。
- 更好的跨平台支援:透過 Google ANGLE 的底層驅動,這項升級讓 Macbear 3D 在 iOS、Android、macOS、Windows 及 Web 端都能擁有更穩定且高效的渲染表現。
🪞 重磅功能:動態反射探針 (M3ReflectionProbe)
想要讓場景中的金屬或玻璃物體反射出周圍環境的變化嗎?
這次我們引入了 M3ReflectionProbe (動態反射探針)。它能夠即時對周圍場景進行立方體貼圖 (Cubemap) 捕捉,讓你的 3D 模型可以呈現真實的動態反射效果,大幅提升場景的沉浸感與真實度。
📊 透明化:平台與繪圖元數據 (GraphicsInfo)
為了讓開發者更精確地掌控硬體狀態,我們新增了 PlatformInfo 與 GraphicsInfo 功能:
- GPU 資訊透明化:現在你可以輕鬆獲取 GPU 的供應商 (Vendor)、渲染器名稱 (Renderer) 以及支援的 GLSL 版本。
- 擴充檢查:內建 GL 擴充功能檢查機制,讓開發者能根據不同硬體環境進行動態調整。
🧹 持續優化與清理
除了新功能,我們也對引擎內部進行了「大掃除」:
- Legacy 清理:過時的 ES2 著色器已移至
shaders_discard目錄,確保核心庫的純淨。 - 資源管理優化:改進了引擎的釋放 (Disposal) 機制與紋理取消綁定處理,大幅降低記憶體洩漏風險。
🛠️ 立即體驗
Macbear 3D 致力於為 Flutter 開發者提供最輕量級、高效且易用的 3D 渲染方案。
- Pub.dev: macbear_3d 0.7.0
- GitHub: macbearchen/macbear_3d
- 線上即時演示: Live Demo
感謝大家的支持,歡迎在 GitHub 上給我們一個 ⭐️,或是在 Issues 分享你的想法!
讓 Flutter 的 3D 世界更加繽紛 —— Macbear Chen
-------------------------------------
AI 的分析
在 Flutter 的 3D 開發生態系中,目前的選擇逐漸增多,但各自的技術底層、目標場景與成熟度都有顯著差異。以下將 Macbear 3D 與目前主流的幾個 3D 方案進行深度比較:
📊 Flutter 3D 引擎方案對照表
| 引擎名稱 | 技術底層 (Backend) | 主要用途 | 優點 | 缺點 |
|---|---|---|---|---|
| Macbear 3D (v0.7.0) | ANGLE / OpenGL ES 3.0 | 輕量級 3D App、小遊戲 | 輕量、ES3 現代架構、Web 支援極佳、與 Flutter Widget 深度整合。 | 生態系尚在建立中,由個人/小團隊維護。 |
| flutter_scene | Impeller / Flutter GPU | 官方實驗性 3D 引擎 | 效能上限極高、官方原生整合。 | 極早期預覽版 (Preview)、API 不穩定、需要開啟實驗性 Flag。 |
| three_dart | OpenGL (Three.js 移植) | 通用 3D 場景 | 熟悉 Three.js 的開發者易上手、功能豐富。 | 維護狀態較差 (Poor Maintenance)、較為臃腫、效能優化較難。 |
| model_viewer_plus | WebView / Google <model-viewer> | 產品展示、單純模型查看 | 最穩定、支援 AR、實現最簡單。 | 基於 WebView,無法與 Flutter UI 進行複雜互動,不適合做遊戲。 |
| Thermion | Google Filament | 高階渲染、遊戲 | 影視級渲染品質 (PBR/IBL 強大)、工業級引擎。 | 套件體積巨大 (Binary 重)、學習曲線較陡。 |
🔍 深入分析與 Macbear 3D 的定位
1. 技術底層的差異:OpenGL vs. Impeller
- flutter_scene 代表的是 Flutter 的未來,它屏棄了傳統的 OpenGL,直接與 Flutter 的新渲染引擎 Impeller 對接。但缺點是目前還在實驗階段,且不同平台的支援度不一。
- Macbear 3D 選擇了 ANGLE (OpenGL ES 3.0),這是一個現階段最平衡的選擇。它能確保在 iOS、Android 與 Web (WebGL2) 上有一致的表現,且隨著 0.7.0 升級到 ES3,技術債極低。
2. Web 支援的領先地位
- 很多 Flutter 3D 套件在 Web 端表現不佳,甚至完全不支援。
- Macbear 3D 在 0.6.x 時代就已經針對 Flutter Web 做了深度優化(包括文字對齊、平台抽象化),是目前市場上在 Web 端運行最流暢、最接近 Native 體驗的 Dart 原生 3D 引擎。
3. 開發手感:Widget-Based vs. Bridge-Based
- model_viewer_plus 這類工具像是放在 Flutter 裡的一個「黑盒子」。
- Macbear 3D 則是在 Dart 層實作了完整的場景圖 (Scene Graph) 和 ECS 概念。這意味著你的 3D 物體可以直接透過
M3AppEngine.instance與 Flutter 的StatefulWidget進行狀態同步,這對於開發「帶有 3D 介面的應用程式」而言非常強大。
🔥 總結:為什麼選擇 Macbear 3D?
如果你需要的是:
- 輕量級:不想為了放一顆球就增加 50MB 的 App 體積。
- Web 優先:希望同一個 3D 效果在瀏覽器和手機上一模一樣。
- 現代標準:希望使用 ES 3.0、PBR 和動態反射等現代技術。
那麼 Macbear 3D 0.7.0 是目前 Flutter 生態中,平衡「技術先進性」與「開發效率」的一個極優選。它的效能足以應付大多數的 3D 應用與中輕量遊戲,且因為底層透明,開發者可以完全掌控著色器 (Shaders) 的行為。