4. 熟悉 Isaac Sim 界面:Stage、Viewport、Property、Content Browser、Script Editor 与 UI 布局自定义
说实话,刚打开 Isaac Sim 的时候,我第一反应是「这玩意儿面板也太多了吧?」。别慌,这章我带你把几个核心面板挨个捋一遍。搞清楚了它们各自是干嘛的,你后面做合成数据生成才会顺手。
4.1 Stage 面板:场景的「骨架」
Stage 面板在默认布局的左上角。它展示的是场景的层级结构——说白了,就是一棵树。你场景里所有的物体、灯光、相机、材质,全挂在这棵树上。
我个人习惯在 Stage 面板里做三件事:
- 选中物体:在 Stage 里点一下,Viewport 里对应的物体就会被高亮。
- 调整层级:拖拽 Prim 可以改变父子关系。比如把相机放到一个空物体下面,方便整体移动。
- 右键操作:右键一个 Prim,可以添加子项、删除、复制,或者查看它的引用路径。
4.2 Viewport:你的「眼睛」
Viewport 就是那个 3D 渲染窗口。你摆的物体、调的光,最终效果全在这里看。默认情况下,Viewport 上方有一排工具栏,用来控制视角、显示模式、Gizmo 工具等。
我记得刚开始用的时候,经常不小心把视角转得找不着北。后来发现一个快捷键:F 键可以聚焦到选中的物体上。
| 操作 | 鼠标/快捷键 | 说明 |
|---|---|---|
| 旋转视角 | 按住鼠标中键拖动 | 围绕场景中心旋转 |
| 平移视角 | 按住鼠标右键拖动 | 上下左右平移 |
| 缩放视角 | 滚动滚轮 | 拉近拉远 |
| 聚焦物体 | 选中物体后按 F | 快速定位到物体 |
| 切换透视/正交 | Viewport 菜单栏 | 合成数据常用透视模式 |
4.3 Property 面板:调参数的「控制台」
Property 面板通常在 Stage 面板的下方或右侧。你选中一个 Prim 后,它的所有属性都会在这里列出来。位置、旋转、缩放、材质、物理属性……全在这。
举个例子,你选中一个 Cube,在 Property 面板里找到 Transform 栏,就能直接输入 X/Y/Z 的数值来精确定位。我曾经在项目里需要把 100 个物体摆成阵列,就是在 Property 面板里批量改的——虽然累,但管用。
- Transform:位置、旋转、缩放
- Mesh:网格数据、顶点数
- Material:材质绑定
- Semantics:语义标签(合成数据的关键!)
- Physics:刚体、碰撞形状
4.4 Content Browser:你的「素材库」
Content Browser 在窗口底部,默认是折叠的。点开它,你会看到 Isaac Sim 自带的素材库:模型、材质、纹理、灯光预设……应有尽有。
做合成数据时,我经常从这里拖一些基础物体(比如椅子、桌子、瓶子)进场景,然后给它们打上语义标签。省去了自己建模的麻烦。
- 拖拽使用:直接从 Content Browser 拖一个物体到 Viewport 或 Stage 面板,它就出现在场景里了。
- 搜索功能:右上角有搜索框,输入关键词(比如 "chair")快速找素材。
- 自定义目录:你可以把自己的模型放到指定路径下,Content Browser 也能识别。
4.5 Script Editor:写代码的地方
Script Editor 在菜单栏 Window -> Script Editor 里打开。它是你写 Python 脚本、控制 Isaac Sim 的核心面板。
界面分三块:
- 编辑器区:写代码的地方,支持语法高亮。
- 控制台:运行结果、报错信息都会显示在这里。
- 工具栏:运行、停止、保存脚本。
举个例子,下面这段代码可以在场景里创建一个 Cube 并设置位置:
import omni.usd
from pxr import Gf, UsdGeom
stage = omni.usd.get_context().get_stage()
cube_path = "/World/MyCube"
cube = UsdGeom.Cube.Define(stage, cube_path)
cube.AddTranslateOp().Set(Gf.Vec3d(1.0, 2.0, 0.0))
print("Cube created at:", cube_path)
把这段代码粘贴到 Script Editor,点运行,Viewport 里就会多出一个 Cube。嗯,就是这么直接。
time.sleep() 或者用 omni.kit.app.get_app().update() 来控制执行节奏。
4.6 UI 布局自定义:按你的习惯来
Isaac Sim 的布局是可以随便拖拽的。每个面板的标题栏都可以拖动,你可以把它们放到任何位置,甚至合并成标签页。
我个人习惯的布局是这样的:
- 左上:Stage 面板(场景层级)
- 左下:Property 面板(调参数)
- 中间:Viewport(看效果)
- 右下:Script Editor + Console(写代码)
- 底部:Content Browser(拖素材)
调好之后,记得保存布局:菜单栏 Window -> Layout -> Save Layout。下次打开 Isaac Sim,直接加载这个布局就行。
4.7 本章知识结构图
下面这张图帮你理清这六个面板之间的关系:
从图里能看出来,Stage 是「骨架」,Property 是「控制台」,Viewport 是「眼睛」,Content Browser 是「仓库」,Script Editor 和 Console 是「大脑」和「输出口」。六个面板配合起来,你才能高效地搭建合成数据场景。
- Stage 面板管理场景层级,一切操作从这里开始。
- Viewport 是实时预览窗口,快捷键 F 聚焦物体。
- Property 面板调整选中物体的所有属性。
- Content Browser 提供内置素材库,支持自定义目录。
- Script Editor 写 Python 脚本,Console 看输出。
- UI 布局可以自由拖拽,记得保存。