welcom ! Handel home

2025年2月23日 星期日

Gazebo Use STL vs. DAE 3D 模型格式對比

 

STL(Stereolithography)和 DAE(Digital Asset Exchange,COLLADA)是常見的 3D 模型格式,廣泛應用於 3D 列印、機械設計、遊戲開發、機器人模擬(如 Gazebo) 等領域。以下是兩者的詳細對比。


1️⃣ STL(Stereolithography)

📌 用途:主要用於 3D 列印、CAD 軟體、工程設計
📌 格式類型:僅儲存 三角面(Triangle Mesh) 的 表面幾何資訊,不包含材質、顏色、貼圖或動畫。

✅ STL 特點

  • 簡單輕量,僅包含 頂點與法向量,適合 3D 列印與機械建模。
  • 格式支援:ASCII & Binary(Binary STL 更小,讀取更快)。
  • 無法儲存顏色、貼圖或材質
  • 適合高精度建模,但檔案體積可能較大

🔹 STL 格式結構

plaintext
solid cube facet normal 0.0 0.0 1.0 outer loop vertex 0.0 0.0 0.0 vertex 1.0 0.0 0.0 vertex 0.0 1.0 0.0 endloop endfacet endsolid cube

這是 ASCII STL,Binary STL 更小,適合大模型。


2️⃣ DAE(COLLADA - Digital Asset Exchange)

📌 用途:主要用於 遊戲開發、動畫、機器人模擬(Gazebo / ROS)、AR/VR
📌 格式類型:基於 XML,可儲存 網格(Mesh)、顏色、貼圖、材質、骨架動畫、物理屬性等

✅ DAE 特點

  • 支援多種 3D 屬性(貼圖、材質、燈光、動畫、物理特性)。
  • 較 STL 檔案大,但包含豐富的視覺資訊
  • 基於 XML,可讀性強,可用於多種應用(如 Blender、Gazebo、Unity)
  • 適合遊戲、機器人模擬(如 Gazebo 用於 URDF)

🔹 DAE 格式結構

xml
<COLLADA> <asset> <contributor> <author>3D Model Creator</author> </contributor> </asset> <library_geometries> <geometry id="cube"> <mesh> <source> <float_array id="positions">0 0 0 1 0 0 1 1 0 0 1 0</float_array> </source> </mesh> </geometry> </library_geometries> </COLLADA>

DAE 是 XML 格式,可包含 動畫、材質、貼圖 等,比 STL 更強大。


3️⃣ STL vs. DAE 對比列表

特性STL(Stereolithography)DAE(COLLADA)
用途3D 列印、工程建模、機械設計遊戲開發、動畫、機器人模擬
格式ASCII / Binary(輕量)XML(可讀性高)
支援貼圖 & 材質❌ 不支援✅ 支援
支援顏色資訊❌ 不支援✅ 支援
支援動畫❌ 不支援✅ 支援(骨架、關節動畫)
支援物理屬性❌ 不支援✅ 支援(剛體、碰撞)
檔案大小較小(Binary STL 更小)較大(XML 結構)
精確度✅ 高(三角網格)✅ 高(多邊形網格 + 更多屬性)
常見應用3D 列印、機械設計(CAD)遊戲開發、機器人模擬(Gazebo)

4️⃣ 何時使用 STL vs. DAE?

應用場景使用 STL使用 DAE
3D 列印
機械設計(CAD)
遊戲開發(Unity / Unreal)
機器人模擬(Gazebo)❌(僅限簡單碰撞網格)
動畫 & 角色骨架(Rigging)
AR / VR 應用

5️⃣ 在 Gazebo / ROS 內使用 STL 或 DAE

如果你在 Gazebo 內使用 URDF 定義機器人,你可以選擇 STL 或 DAE 來定義 3D 模型。

✅ 1. 使用 STL

xml
<visual> <geometry> <mesh filename="package://my_robot/meshes/robot_part.stl" scale="1 1 1"/> </geometry> </visual>

STL 適合碰撞體積(collision mesh),但 無法顯示顏色


✅ 2. 使用 DAE

xml
<visual> <geometry> <mesh filename="package://my_robot/meshes/robot_part.dae" scale="1 1 1"/> </geometry> <material> <color rgba="1 0 0 1"/> </material> </visual>

DAE 支援顏色、材質,適合機器人外觀顯示


📌 總結

  • STL:適合 3D 列印、CAD 設計,但不支援顏色與動畫
  • DAE:適合 遊戲、機器人模擬(Gazebo)、動畫,可支援 貼圖、動畫、物理屬性

🚀 如果你的應用是 3D 列印或機械設計,選 STL;

如果你要做機器人模擬或遊戲開發,選 DAE! 🎯


沒有留言: