当前位置: 首页 > news >正文

第六章、Isaacsim中的资产:usda文件详解(1)

第六章、Isaacsim中的资产:usda文件详解(1)

0 前言

官方网站:https://docs.isaacsim.omniverse.nvidia.com/latest/omniverse_usd/intro_to_usd.html

1 将isaac sim 中的机械狗a1保存为usda

打开Isaac sim,点击下方资产Isaac Sim Assests[Beta]->ROBOTS->UNITREE->a1,随后点击Open File在stage中打开资产。
在这里插入图片描述点击File->Save As输入文件名(File name)并将usd换成usda点击save保存。
在这里插入图片描述在保存好的文件夹下可以发现有一个usda文件。

1 机械狗a1的usda解析:头部说明

#usda 1.0
(
    customLayerData = {
        dictionary audioSettings = {
            double dopplerLimit = 2
            double dopplerScale = 1
            string enableDistanceDelay = "off"
            string enableDoppler = "off"
            string enableInterauralDelay = "off"
            double nonSpatialTimeScale = 1
            double spatialTimeScale = 1
            double speedOfSound = 340
        }
        dictionary cameraSettings = {
            dictionary Front = {
                double3 position = (50000.000000000015, -1.1102230246251565e-11, 0)
                double radius = 500
            }
            dictionary Perspective = {
                double3 position = (-0.002586823802268228, 1.424646790514281, 0.47104273025473203)
                double3 target = (-8.825344033434185e-7, -8.825346318186433e-7, 0.000001765068980363882)
            }
            dictionary Right = {
                double3 position = (0, -50000, -1.1102230246251565e-11)
                double radius = 500
            }
            dictionary Top = {
                double3 position = (0, 0, 50000)
                double radius = 500
            }
            string boundCamera = "/OmniverseKit_Persp"
        }
        dictionary omni_layer = {
            string authoring_layer = "./a1.usd"
            dictionary locked = {
            }
            dictionary muteness = {
            }
        }
        dictionary renderSettings = {
        }
    }
    defaultPrim = "a1_description"
    doc = """Generated from Composed Stage of root layer 
"""
    metersPerUnit = 1
    timeCodesPerSecond = 60
    upAxis = "Z"
)

1 文件基础说明

#usda 1.0

声明此文件遵循 USD 格式的 1.0 版本规范

2 全局元数据块

(
    customLayerData = { ... }
    defaultPrim = "a1_description" # 当该 USD 文件被其他场景引用时,如果没有指定具体 Prim 路径,将自动指向此 Prim
    doc = """Generated from Composed Stage of root layer """ # 记录该 USD 文件的生成方式(此处指明由根层组合生成)
    metersPerUnit = 1 # 1 USD 单位 = 1 米;指定单位
    timeCodesPerSecond = 60 # 时间系统配置:关键帧间隔1/60秒
    upAxis = "Z" # 默认z轴朝上
)

关键参数详解:

customLayerData:存储应用专属元数据(非 USD 标准部分)

  • audioSettings:3D 空间音频参数
dictionary audioSettings = {
            double dopplerLimit = 2 # 多普勒效应最大频率偏移倍数
            double dopplerScale = 1 # 多普勒强度缩放因子
            string enableDistanceDelay = "off" # 是否启用基于距离的音频延迟
            string enableDoppler = "off" # 是否启用多普勒效应
            string enableInterauralDelay = "off" # 禁用双耳时间差效果
            double nonSpatialTimeScale = 1 # 非空间化音频播放速率
            double spatialTimeScale = 1 # 空间化音频播放速率
            double speedOfSound = 340 # 声速(米/秒,真实世界值)
        }
  • cameraSettings:预设摄像机配置
dictionary cameraSettings = {
            dictionary Front = {
            #  Front 正交视图摄像机,Y轴向前,Z轴向上,X轴向右的右手坐标系
                double3 position = (50000.000000000015, -1.1102230246251565e-11, 0) 
                # 摄像机空间位置(大致上是从x轴的正方向看)
                # X = ~50,000 单位(因 metersPerUnit=1,即 50公里)
                # Y ≈ -1.11e-11(接近0,可视为浮点数精度误差)
                # Z = 0(与场景平面对齐)
                double radius = 500 # 摄像机观察半径(单位:米),控制视图剪裁平面范围,500米外的物体不可见
            }
            dictionary Perspective = {
            # 透视摄像机,构成一个从斜上方看向原点的视角。
                double3 position = (-0.002586823802268228, 1.424646790514281, 0.47104273025473203) # 摄像机三维坐标
                double3 target = (-8.825344033434185e-7, -8.825346318186433e-7, 0.000001765068980363882) #焦点坐标
            }
            dictionary Right = {
            # Right 正交视图摄像机
                double3 position = (0, -50000, -1.1102230246251565e-11)
                # X = 0(正右侧视图)
                # Y = -50,000(沿Y轴负方向50公里)
                # Z ≈ 0(水平对齐)
                double radius = 500  # 摄像机观察半径(单位:米),控制视图剪裁平面范围,500米外的物体不可见
            }
            dictionary Top = {
            # Top 正交视图摄像机,正上方
                double3 position = (0, 0, 50000)
                # X = 0
                # Y = 0
                # Z = 50,000(正上方50公里处)
                double radius = 500
            }
            string boundCamera = "/OmniverseKit_Persp" # 绑定摄像机
            # 指定默认激活的摄像机 Prim 路径,控制用户进入场景时的初始视角
        }
  • 层级组合关系
dictionary omni_layer = {
            string authoring_layer = "./a1.usd"
            # 定义当前层(layer)的基础创作层路径
            dictionary locked = {
            } # 锁定状态记录,记录被锁定的 Prim 或属性路径,防止意外修改关键内容(如角色骨骼、摄像机路径)。
            dictionary muteness = {
            } # 静音状态记录
        }
  • 场景渲染
dictionary renderSettings = {}
# 存储与场景渲染相关的全局配置参数,空字典表示未显式配置渲染设置,使用系统/应用默认值。

剩余的usda部分将在后面几节中进行详解。

相关文章:

  • 基姆拉尔森计算公式
  • 车辆投保日期查询API:快速获取想要的车辆保险日期
  • [王阳明代数讲义]琴语言类型系统工程特性
  • Tracing the thoughts of a large language model 简单理解
  • AI比人脑更强,因为被植入思维模型【41】反作用力思维模型
  • Python 爬虫突破反爬虫机制实战
  • 文献分享: DESSERT基于LSH的多向量检索(Part1——原理与实现)
  • C++中std::priority_queue的使用说明
  • #MySQL 语句大全(完整实用教程)
  • 生成对抗网络(GAN)详解
  • Java代理(四)动态代理之CGLIB
  • 单网卡上绑定多个虚拟IP(AI回答)
  • linux部署成功,但外网无法访问
  • 数据结构与算法:子数组最大累加和问题及扩展
  • 百度查询的ip与命令行输入 ipconfig 显示的IP地址有以下主要区别:
  • 管家婆财贸ERP BB102.采购销售订金管理
  • 快速生成mysql测试数据10w条
  • CSP/信奥赛C++中格式化输入输出scanf和printf的使用详解
  • 快速上手示例(以BEVFormer为例)
  • 【蓝桥杯】考前冲刺!