使用 NVIDIA Isaac Sim 為赤土崎全齡社福樞紐建立 3D 模型
- GPU: NVIDIA RTX 3060 或更高(建議 RTX 4070+)
- RAM: 32GB 以上
- 儲存空間: 至少 150GB 可用空間
- 作業系統: Ubuntu 20.04/22.04 或 Windows 10/11
- NVIDIA 驅動程式(最新版)
- NVIDIA Isaac Sim 2023.1.1 或更新版本
- Blender 3.6 或更新版本
- Python 3.10+
# Ubuntu
sudo snap install blender --classic
# 或從官網下載
# https://www.blender.org/download/方式 1: 在 Blender 內執行
- 開啟 Blender
- 切換到 Scripting 工作區(頂部選單)
- 點擊 Open → 選擇
/home/user/building/scripts/blender_generate_1F.py - 點擊 Run Script (
▶️ 按鈕) - 等待建模完成(約 1-2 分鐘)
方式 2: 命令列執行
cd /home/user/building
blender --background --python scripts/blender_generate_1F.py在 Blender 中:
- 按數字鍵 0 → 切換到攝影機視角
- 按 Z → 選擇 Rendered → 查看渲染效果
- 使用滑鼠中鍵拖曳 → 旋轉視角
- 滾動滑鼠滾輪 → 縮放
File → Export → Universal Scene Description (.usdc)
設定:
✅ File Format: Binary (.usdc)
✅ Selection Only: OFF
✅ Export Materials: ON
儲存位置: /home/user/building/assets/floor_1F.usdc
- 啟動 Isaac Sim
- File → Open
- 選擇
/home/user/building/assets/floor_1F.usdc - 完成!
透過 Omniverse Launcher(推薦):
- 下載 NVIDIA Omniverse Launcher
- 安裝並啟動 Launcher
- 在 Exchange 標籤中找到 Isaac Sim
- 點擊 Install(約 15GB 下載)
- 安裝完成後點擊 Launch
在 Isaac Sim Script Editor 中執行:
- 開啟 Isaac Sim
- Window → Script Editor
- File → Open Script
- 選擇
/home/user/building/scripts/generate_floor_1F.py - 點擊 Run (
▶️ ) - 等待場景生成
或使用命令列:
# 找到 Isaac Sim 安裝路徑
ISAAC_SIM_PATH=~/.local/share/ov/pkg/isaac_sim-2023.1.1
# 執行腳本
$ISAAC_SIM_PATH/isaac-sim.sh --exec /home/user/building/scripts/generate_floor_1F.py在 Isaac Sim 中:
-
視角控制:
- 滑鼠中鍵拖曳: 旋轉
- Shift + 滑鼠中鍵: 平移
- 滾輪: 縮放
-
材質調整:
- 在 Stage 面板選擇物件
- 在 Property 面板調整 Material 參數
-
照明調整:
- 選擇
/Lights/DomeLight - 調整 Intensity(建議 1000-2000)
- 選擇
在 blender_generate_1F.py 腳本的最後添加:
# 添加餐桌範例
def create_table(name, location):
# 桌面
bpy.ops.mesh.primitive_cube_add(location=(location[0], location[1], 0.75))
table_top = bpy.context.active_object
table_top.name = f"{name}_Top"
table_top.scale = (0.6, 0.4, 0.025)
# 桌腳
for dx, dy in [(0.5, 0.3), (0.5, -0.3), (-0.5, 0.3), (-0.5, -0.3)]:
bpy.ops.mesh.primitive_cylinder_add(
location=(location[0] + dx, location[1] + dy, 0.375),
radius=0.05,
depth=0.75
)
leg = bpy.context.active_object
leg.name = f"{name}_Leg"
# 在餐廳添加 10 張桌子
for i in range(10):
row = i // 5
col = i % 5
create_table(f"Table_{i+1}", (12 + col * 2, -4 + row * 3, 0))
# 重新執行腳本# 逐一執行每層樓的腳本(尚未建立,需參考 1F 腳本自行修改)
blender --background --python scripts/blender_generate_B1.py
blender --background --python scripts/blender_generate_1F.py
blender --background --python scripts/blender_generate_2F.py
blender --background --python scripts/blender_generate_3F.py
blender --background --python scripts/blender_generate_4F.py在 Isaac Sim Script Editor 執行:
from pxr import Usd, UsdGeom, Gf
# 建立新場景
stage = Usd.Stage.CreateNew("/home/user/building/scenes/complete_building.usd")
UsdGeom.SetStageMetersPerUnit(stage, 1.0)
# 載入各樓層(設定不同高度)
floors = {
"B1": -3.5,
"1F": 0.0,
"2F": 4.0,
"3F": 7.8,
"4F": 11.3,
}
for floor_name, height in floors.items():
floor_path = f"/Building/{floor_name}"
floor_xform = UsdGeom.Xform.Define(stage, floor_path)
floor_xform.AddTranslateOp().Set(Gf.Vec3d(0, 0, height))
# 參照外部 USD 檔案
floor_ref = stage.DefinePrim(f"{floor_path}/Geometry")
floor_ref.GetReferences().AddReference(f"../assets/floor_{floor_name}.usdc")
# 儲存場景
stage.Save()
print("✅ 完整建築場景已建立!")建議的專案目錄結構:
/home/user/building/
├── CLAUDE.md # 建築設計文檔(已存在)
├── QUICKSTART.md # 本快速入門指南
├── isaac_sim_implementation_plan.md # 詳細實作計劃
│
├── scripts/ # Python 腳本
│ ├── blender_generate_1F.py # Blender 1F 建模腳本
│ ├── blender_generate_2F.py # (待建立)
│ ├── blender_generate_3F.py # (待建立)
│ ├── blender_generate_4F.py # (待建立)
│ ├── blender_generate_B1.py # (待建立)
│ └── generate_floor_1F.py # Isaac Sim 1F 建模腳本
│
├── assets/ # USD 模型檔案
│ ├── floor_B1.usdc # (將由 Blender 匯出)
│ ├── floor_1F.usdc # (將由 Blender 匯出)
│ ├── floor_2F.usdc # (將由 Blender 匯出)
│ ├── floor_3F.usdc # (將由 Blender 匯出)
│ ├── floor_4F.usdc # (將由 Blender 匯出)
│ └── furniture/ # 家具模型
│ ├── tables.usdc
│ ├── chairs.usdc
│ └── equipment.usdc
│
├── scenes/ # 完整場景檔案
│ ├── complete_building.usd # 整合所有樓層的場景
│ └── test_1F.usd # 測試用場景
│
├── renders/ # 渲染輸出
│ ├── images/ # 靜態圖片
│ └── videos/ # 動畫影片
│
└── blender/ # Blender 專案檔
├── floor_1F.blend
├── floor_2F.blend
└── ...
-
調整到想要的攝影機視角
-
Render Settings (右側面板):
- Renderer: Path Tracing
- Samples: 256 或更高
- Denoiser: ON
-
Movie Capture:
- Window → Utilities → Movie Capture
- 設定 Resolution: 1920×1080 或 3840×2160
- Format: PNG (圖片) 或 MP4 (影片)
- 點擊 Capture
# 在 Isaac Sim Script Editor 執行
import omni.kit.viewport.utility as vp_util
# 設定 360° 攝影機
camera = stage.DefinePrim("/Camera360", "Camera")
camera.GetAttribute("focalLength").Set(18) # 廣角
# 渲染 360° 圖片(需要 360° rendering 插件)
# 或手動旋轉攝影機渲染多張圖片後拼接A: 檢查以下幾點:
- 確認 Console 沒有錯誤訊息(Window → Toggle System Console)
- 在 Outliner 面板檢查是否有建立物件
- 按數字鍵 7 (頂視圖) 和 Home 鍵(全畫面顯示)
- 嘗試縮小視角(滾輪向外滾)
A:
- 檢查照明: 選擇
/Lights/DomeLight,調高 Intensity - 調整攝影機位置: 可能在模型內部
- 切換 Viewport 渲染模式: 右上角選擇不同的渲染模式
A:
- Blender 匯出時確認勾選 Export Materials
- 使用 .usdc 格式(二進位,較穩定)
- 在 Isaac Sim 中手動重新指定材質
A:
- 分樓層建模,不要一次載入全部
- 降低多邊形數量(Blender: Modifier → Decimate)
- 使用較低解析度的貼圖
- Blender 建築建模: 搜尋 "Blender Architecture Tutorial"
- Isaac Sim 入門: NVIDIA Omniverse Channel
- 安裝 Blender 和 Isaac Sim
- 執行
blender_generate_1F.py建立 1F 模型 - 成功匯出 USD 並在 Isaac Sim 中開啟
- 調整材質和照明
- 建立所有 5 層樓的模型(參考 1F 腳本)
- 組裝完整建築場景
- 添加基本家具
- 產出高品質渲染圖
- 添加動畫(電梯、門、人員移動)
- 使用 Omniverse 協作功能(多人編輯)
- 整合物理模擬(碰撞檢測)
- VR 虛擬實境導覽
祝你建模順利!🚀
有任何問題歡迎查閱 isaac_sim_implementation_plan.md 詳細文檔。