NVIDIA Omniverse中的物理模拟功能

描述

NVIDIA Omniverse Simulation 作为 NVIDIA Omniverse 平台的关键组件之一,由 NVIDIA 技术提供动力支持,包括 PhysX、Flow、Blast 和 AI 等技术。

GPU芯片

▲ NVIDIA Omniverse 中的物理模拟

1. NVIDIA PhysX

NVIDIA PhysX 是一种可扩展的多平台物理仿真解决方案,PhysX 已成为 NVIDIA Omniverse 的主要物理引擎和关键的基础技术支柱。

此前,PhysX 是一个游戏物理引擎,可提供用于各种视频游戏主机的优化端口;如今,PhysX 是一个高保真的、GPU 加速的物理模拟引擎,从传统的 VFX 和游戏开发工作流、到高保真机器人开发、医学仿真和科学可视化应用,都可以借助 PhysX 实现基于现实物理世界的模拟仿真。

 

1.1   PhysX 物理模拟 SDK

NVIDIA PhysX SDK 包括 PhysX、Blast 和 Flow。

PhysX:多平台物理引擎。PhysX 在 NVIDIA Omniverse 中以 BSD3 开源版本的形式提供,包括所有 CPU 源代码和 GPU 二进制文件。

Blast:NVIDIA PhysX SDK 包含 Blast,这是一个专为提高性能、可扩展性和灵活性而设计的破坏和断裂库。

Flow:Flow 也是 NVIDIA PhysX SDK 的一部分,可实现真实的可燃流体、烟雾和火灾模拟。

1.2   PhysX 关键特性

刚体动力学:根据刚体动力学,研究外力(例如重力)作用下多个物体相互作用的运动。PhysX 可同时在 CPU 和 GPU 上提供经过行业验证的可扩展刚体仿真。

场景查询:对仿真世界执行空间查询,以允许在仿真环境中使用场景查询进行感知和推理。PhysX 与灵活的过滤机制相结合,支持对整个世界或单个物体进行光线投射、重叠和扫描式查询。

关节:关节限制了物体间相互作用的移动方式。PhysX 提供一套常见的内置关节类型,并支持通过灵活的回调机制来自定义关节。

简化坐标关节:坐标关节的简化可为刚体树提供线性时间,以及有保证的零错误仿真。PhysX 的实施与分析模型非常匹配,并且能够实现准确的动量守恒。

车辆动力学:PhysX 可提供准确高效的汽车仿真,包括轮胎、引擎、离合器、变速器和悬架模型。

角色控制器:PhysX 可提供一个运动学角色控制器,允许虚拟形象在仿真世界中导航。PhysX 同时支持与静态和动态仿真活动者间的各种相互作用。

软体动力学:PhysX 的 FEM 软体可模拟超弹性材质的可测量属性,以形成精确高效的弹性/塑料可变形物体模型。

SDF 碰撞器:基于 SDF 的碰撞检测可以用于物理对象,实现对齿轮和凸轮的实时模拟。

基于位置的动力学(PBD):基于位置的动力学提供了一个灵活的框架,用于模拟各种现象,包括液体、颗粒材质、布料、绳索、刚体、可变形物体等。基于位置的动力学广泛应用于视觉效果行业。

自定义几何图形:PhysX 提供各种内置几何图形以及灵活的回调机制,使应用能够在仿真中引入自己的几何类型。

借助 NVIDIA PhysX SDK,能够帮助扩展各个行业的模拟工作流和相关应用。

2. NVIDIA Warp

NVIDIA Warp 是一个 Python 框架,可以在 NVIDIA Omniverse 和 OmniGraph 中编写 GPU 高性能模拟和图形代码。在 Omniverse 中,Warp 可用于数字人、物理模拟和程序动画。

Warp 使用 kernel-based 编程模型,并且能够生成 kernel code 的正向和反向版本,使得编写可微模拟变得很容易。除此之外,Warp 还包含用于模拟和几何处理的高级功能,提供更高级别的数据结构,例如 Mesh(网格)、Hash Grids(哈希网格)和 Sparse Volumes(稀疏体积)。

 2.1   Warp 关键特性

布料模拟:使用有限元法(FEM)和基于边缘的弯曲模型创建的布料模拟。

基于粒子的模拟:通过将离散元法(DEM)与变形网格碰撞相结合来模拟具有内聚力和粘附力的颗粒材料。

程序动画:在 Warp 中实现的实时程序海洋变形器,可作为 OmniGraph 节点集成到 NVIDIA Omniverse 中,驱动基于通用场景描述(USD)的网格图元。

网格变形器:shrink-wrap 变形器使用 kernel-based 的光线投射到眼睛网格上,使眼球周围的眼睑变形。

 2.2   Warp 下载与安装

要在 NVIDIA Omniverse 中使用 Warp,可以从 Extension 列表中搜索并启用“Warp”。

GPU芯片

omni.warp 扩展提供了 OmniGraph 节点的集合和示例场景,演示了 OmniGraph 中 Warp 的用法。启用 omni.warp 扩展会自动启用 omni.warp.core 扩展。

利用 omni.warp.core 扩展程序将 Warp 安装到 Omniverse 应用程序的 Python 环境中,用户可以在脚本和节点中导入该模块。启用后,可以打开脚本编辑器窗口并执行以下代码:

 

import warp as wp
print(wp.__version__)

 

 2.3   在 OmniGraph 中使用 Warp

Warp 在 NVIDIA Omniverse 中的主要用途之一,是可以在 Python 中定义 GPU OmniGraph 节点。

在 OmniGraph 中执行 Warp 代码有多种方法:

在 Python 中创建一个自定义 OmniGraph 节点,导入 Warp 模块。

在 Action Graph 中添加脚本节点,并在脚本中导入 Warp 模块。

将 Warp Kernel 节点添加到 Action Graph(需要启用扩展 omni.warp)。

 

3. NVIDIA Modulus

NVIDIA Modulus 是一个开源物理机器学习平台。该模型将物理学与深度学习训练数据相结合,以构建具有近乎实时延迟的高保真、参数化代理模型。Modulus 可通过 Modulus 扩展程序与 NVIDIA Omniverse 集成,可用于将 Modulus 训练的模型的输出可视化。

目前,Modulus 扩展程序仅适用于 NVIDIA Omniverse USD Composer 2022.2.0 或更早版本支持的 Linux 版本。因此,如果使用的是 2022 以前的版本,可搜索该扩展程序体验,本文不再详述。

GPU芯片

4. 来自第三方的物理仿真扩展程序或连接器

NVIDIA Omniverse 是一个可扩展的计算平台,用户可以基于 Universal Scene Description(OpenUSD)在 Omniverse 中开发和构建自己的自定义程序和应用。

 4.1   FlexSim

FlexSim 是一家仿真建模软件提供商,专门从事离散事件仿真,使用户能够分析、可视化和优化各行各业的实际流程。FlexSim 开发了一个 NVIDIA Omniverse 连接器,使工程师、设计师和仿真专家能够将 FlexSim 模型无缝转换为 OpenUSD 格式。将 FlexSim 的高级材质处理工具包与 Omniverse 中的协作布局工具相结合,可以提高仿真规划阶段的灵活性,并提高数字孪生操作阶段的视觉保真度。

GPU芯片

▲ FlexSim 和 NVIDIA Omniverse USD Composer 中的

实时同步仿真模型

 4.2   SimScale

借助 NVIDIA Omniverse SimScale Converter Extension,可以将 USD prims 作为模型上传到 SimScale,并将计算流体动力学和有限元分析模拟引入 NVIDIA Omniverse。

用户可在 NVIDIA Omniverse USD Composer 中单击“Windows”>“Extensions”,安装并启动该扩展程序,进行体验。

GPU芯片GPU芯片

关于 NVIDIA Omniverse Simulation 相关操作教程,请参考后续以 NVIDIA Omniverse USD Composer 应用为基础的视频教程,将带大家详细了解 Omniverse 中的物理仿真功能。




审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分