2026年5月24日 星期日

Macbear 3D v0.9.0 on pub.dev

Macbear 3D v0.9.0 — 導入 Rapier 物理引擎與全新渲染上下文

Macbear 3D v0.9.0 — 導入 Rapier 物理引擎與全新渲染上下文

2026年5月 · macbear_3d · Flutter 3D 引擎

我們非常高興地宣布 Macbear 3D 正式發佈 v0.9.0 版本!這是專為 Flutter 打造的輕量級、高效能 3D 引擎,底層由 Google ANGLE (OpenGL ES 3.0) 驅動。

本次更新為迄今為止最大的版本升級,迎來了全新的渲染上下文抽象、正式導入 Rapier 物理引擎,並對整體架構進行了全面優化。

⚡ Rapier 物理引擎 — 再見了,Oimo

Macbear 3D 的物理模擬迎來了重大升級!我們正式從舊有的 Oimo 遷移至 Rapier 物理引擎。這是一款現代、具備確定性(Deterministic)的剛體物理模擬器,廣泛應用於各式生產環境的遊戲與模擬中。

這次的遷移帶來了更乾淨、更直覺的 API 設計。相較於舊版 Oimo,核心改進包括:

  • 解耦形狀與動力學: 全新的碰撞體(Collider)與剛體(RigidBody)抽象化設計,讓形狀定義與物體動態分開,管理更彈性。
  • 更高的模擬穩定性: 在高幀率或高模擬頻率下,物理表現更加穩定。
  • 原生支持確定性: 確保每一次的物理模擬與回放結果完全一致。

🖼️ M3RenderContext — 更乾淨的多通道渲染

隨著引擎功能的不斷擴展(例如陰影貼圖、立方體貼圖探針、平面反射等),如果每次渲染調用都要手動傳遞零散的 GPU 狀態,程式碼會變得非常臃腫。

v0.9.0 引入了全新的 M3RenderContext。這是一個輕量級的數值對象(Value Object),將渲染通道所需的一切物件完美封裝,包含:視口(Viewport)尺寸、視圖與投影矩陣、光照方向與陰影貼圖圖集,以及反射緩衝區句柄等。

現在,管線中的每個通道都只需接收一個 M3RenderContext,大幅簡化了調用端的複雜度,也為未來加入後處理(Post-processing)、綻放(Bloom)或光暈(God-rays)等新功能奠定了堅實的基礎。

🪞 平面反射 (Planar Reflections)

鏡面級的反射效果現在成為了核心功能!透過全新設計的 M3PlanarReflection 與鏡面著色器(Mirror Shaders),任何平面(如地板、平靜水面、玻璃牆)都能完美反射上方的場景,並具備可配置的裁剪平面(Clip-plane),有效消除畫面偽影。反射相機每一幀都會由引擎自動驅動,開發者無需進行額外的複雜設定。

📦 版本變更一覽

模組 變更內容
渲染上下文 新增 M3RenderContext 抽象化管理
物理引擎 由 Rapier 取代 Oimo;啟用全新的 Collider / RigidBody API
鏡面反射 新增 M3PlanarReflection 與 Mirror 著色器支持
相機控制 M3CameraM3Projection 中新增反射矩陣支持
幾何形狀 更新 M3PlaneGeomM3Material 及基礎幾何基元

🚀 線上即時體驗

想要親自感受新版本的魅力嗎?我們準備了網頁版 Live Demo,無需任何安裝與設定,點擊即可直接在瀏覽器中體驗 Macbear 3D 的強大功能:

若要在您的 Flutter 項目中開始使用,請更新 pubspec.yaml

dependencies:
  macbear_3d: ^0.9.0

如果您在開發過程中遇到任何 Bug 或有新的功能建議,歡迎前往 GitHub Issues 提交反饋,也隨時歡迎您的 Pull Request!

Happy rendering 🎮

— Macbear 3D 團隊

2026年5月1日 星期五

Rapier Physics for Flutter v0.3.0

Rapier Physics for Flutter v0.3.0 正式發佈

邁向高效能 3D 物理模擬的新里程碑

很高興向大家宣佈,Rapier Physics for Flutter 迎來了重要的 v0.3.0 版本更新!這是一個專為 Flutter 打造、由 Rapier (Rust) 強力驅動的高性能 3D 物理引擎。

🌐 互動式線上展示 (Live Demo)

提示:您可以直接在上方視窗中進行互動。若無法正常載入,請點擊 此處開啟全螢幕版

🚀 新版本亮點

1. 全新的 Descriptor 設計模式

我們重新設計了 RigidBody 與 Collider 的創建流程,引入了 Descriptor-based API。現在,你可以用更簡潔、具宣告性的方式定義物理屬性,大幅提升了代碼的可讀性與維護性。

2. 強大的關節 (Joints) 系統

新版本全面支援多種物理關節,並內建馬達 (Motor) 控制功能,讓你可以輕鬆實現複雜的機械運動,包括固定、球狀、旋轉、稜柱及繩索等多種連接方式。

3. 範例專案架構重構

為了方便開發者學習,我們重構了 example 專案,提取出 BaseScene 基礎類別。現在場景展示代碼更加整潔,開發者可以更專注於物理交互的設計。

4. Web 端極速體驗 (WASM)

透過 WebAssembly (WASM) 技術,Rapier Physics 在網頁端展現了流暢的效能。即便在瀏覽器中模擬大量物體的物理交互,依然能保持穩定的幀率。

2026年4月25日 星期六

Live Demo: Macbear 3D

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:新增 addForceaddTorqueapplyImpulse 及其 AtPoint 變體,讓你能精確施加衝量於物體的特定位置。
  • 速度直接控制:透過 setLinearVelocitysetAngularVelocity 實現細粒度的運動控制。

3. 高速移動不再「穿牆」:CCD 支援

針對高速移動的小物體(如子彈),0.2.0 加入了 CCD (Continuous Collision Detection)。只需調用 body.setCCD(true),即可防止物體因速度過快而在單個時步內穿透障礙物。

4. 地形與多樣化碰撞體

  • Heightfield (高度場):支援從網格數據生成地形碰撞體,非常適合 3D 賽車或冒險遊戲的地圖。
  • Cone (圓錐體):新增圓錐體碰撞支援,完善了基礎幾何形狀庫。

5. 更強大的生命週期管理

  • 動態移除:現在可以安全地從 RapierWorld 中移除剛體、碰撞體或關節。
  • 自動清理機制:當你移除一個剛體時,系統會自動清理其關聯的所有碰撞體與關節,防止內存洩漏。
  • 雙向導航:透過 body.collidersbody.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 版本發佈:

大家好!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 渲染方案。

感謝大家的支持,歡迎在 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_sceneImpeller / Flutter GPU官方實驗性 3D 引擎效能上限極高、官方原生整合。極早期預覽版 (Preview)、API 不穩定、需要開啟實驗性 Flag。
three_dartOpenGL (Three.js 移植)通用 3D 場景熟悉 Three.js 的開發者易上手、功能豐富。維護狀態較差 (Poor Maintenance)、較為臃腫、效能優化較難。
model_viewer_plusWebView / Google <model-viewer>產品展示、單純模型查看最穩定、支援 AR、實現最簡單。基於 WebView,無法與 Flutter UI 進行複雜互動,不適合做遊戲。
ThermionGoogle 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?

如果你需要的是:

  1. 輕量級:不想為了放一顆球就增加 50MB 的 App 體積。
  2. Web 優先:希望同一個 3D 效果在瀏覽器和手機上一模一樣。
  3. 現代標準:希望使用 ES 3.0、PBR 和動態反射等現代技術。

那麼 Macbear 3D 0.7.0 是目前 Flutter 生態中,平衡「技術先進性」與「開發效率」的一個極優選。它的效能足以應付大多數的 3D 應用與中輕量遊戲,且因為底層透明,開發者可以完全掌控著色器 (Shaders) 的行為。