NVIDIA Omniverse Simulation作為 NVIDIA Omniverse 平臺(tái)的關(guān)鍵組件之一,由 NVIDIA 技術(shù)提供動(dòng)力支持,包括 PhysX、Flow、Blast 和 AI 等技術(shù)。
▲ NVIDIA Omniverse 中的物理模擬
1.NVIDIA PhysX
NVIDIA PhysX 是一種可擴(kuò)展的多平臺(tái)物理仿真解決方案,PhysX 已成為 NVIDIA Omniverse 的主要物理引擎和關(guān)鍵的基礎(chǔ)技術(shù)支柱。
此前,PhysX 是一個(gè)游戲物理引擎,可提供用于各種視頻游戲主機(jī)的優(yōu)化端口;如今,PhysX 是一個(gè)高保真的、GPU 加速的物理模擬引擎,從傳統(tǒng)的 VFX 和游戲開發(fā)工作流、到高保真機(jī)器人開發(fā)、醫(yī)學(xué)仿真和科學(xué)可視化應(yīng)用,都可以借助 PhysX 實(shí)現(xiàn)基于現(xiàn)實(shí)物理世界的模擬仿真。
1.1 PhysX 物理模擬 SDK
NVIDIA PhysX SDK 包括 PhysX、Blast 和 Flow。
PhysX:多平臺(tái)物理引擎。PhysX 在 NVIDIA Omniverse 中以 BSD3 開源版本的形式提供,包括所有 CPU 源代碼和 GPU 二進(jìn)制文件。
Blast:NVIDIA PhysX SDK 包含 Blast,這是一個(gè)專為提高性能、可擴(kuò)展性和靈活性而設(shè)計(jì)的破壞和斷裂庫。
Flow:Flow 也是 NVIDIA PhysX SDK 的一部分,可實(shí)現(xiàn)真實(shí)的可燃流體、煙霧和火災(zāi)模擬。
1.2 PhysX 關(guān)鍵特性
剛體動(dòng)力學(xué):根據(jù)剛體動(dòng)力學(xué),研究外力(例如重力)作用下多個(gè)物體相互作用的運(yùn)動(dòng)。PhysX 可同時(shí)在 CPU 和 GPU 上提供經(jīng)過行業(yè)驗(yàn)證的可擴(kuò)展剛體仿真。
場(chǎng)景查詢:對(duì)仿真世界執(zhí)行空間查詢,以允許在仿真環(huán)境中使用場(chǎng)景查詢進(jìn)行感知和推理。PhysX 與靈活的過濾機(jī)制相結(jié)合,支持對(duì)整個(gè)世界或單個(gè)物體進(jìn)行光線投射、重疊和掃描式查詢。
關(guān)節(jié):關(guān)節(jié)限制了物體間相互作用的移動(dòng)方式。PhysX 提供一套常見的內(nèi)置關(guān)節(jié)類型,并支持通過靈活的回調(diào)機(jī)制來自定義關(guān)節(jié)。
簡(jiǎn)化坐標(biāo)關(guān)節(jié):坐標(biāo)關(guān)節(jié)的簡(jiǎn)化可為剛體樹提供線性時(shí)間,以及有保證的零錯(cuò)誤仿真。PhysX 的實(shí)施與分析模型非常匹配,并且能夠?qū)崿F(xiàn)準(zhǔn)確的動(dòng)量守恒。
車輛動(dòng)力學(xué):PhysX 可提供準(zhǔn)確高效的汽車仿真,包括輪胎、引擎、離合器、變速器和懸架模型。
角色控制器:PhysX 可提供一個(gè)運(yùn)動(dòng)學(xué)角色控制器,允許虛擬形象在仿真世界中導(dǎo)航。PhysX 同時(shí)支持與靜態(tài)和動(dòng)態(tài)仿真活動(dòng)者間的各種相互作用。
軟體動(dòng)力學(xué):PhysX 的 FEM 軟體可模擬超彈性材質(zhì)的可測(cè)量屬性,以形成精確高效的彈性/塑料可變形物體模型。
SDF 碰撞器:基于 SDF 的碰撞檢測(cè)可以用于物理對(duì)象,實(shí)現(xiàn)對(duì)齒輪和凸輪的實(shí)時(shí)模擬。
基于位置的動(dòng)力學(xué)(PBD):基于位置的動(dòng)力學(xué)提供了一個(gè)靈活的框架,用于模擬各種現(xiàn)象,包括液體、顆粒材質(zhì)、布料、繩索、剛體、可變形物體等?;谖恢玫膭?dòng)力學(xué)廣泛應(yīng)用于視覺效果行業(yè)。
自定義幾何圖形:PhysX 提供各種內(nèi)置幾何圖形以及靈活的回調(diào)機(jī)制,使應(yīng)用能夠在仿真中引入自己的幾何類型。
借助 NVIDIA PhysX SDK,能夠幫助擴(kuò)展各個(gè)行業(yè)的模擬工作流和相關(guān)應(yīng)用。
2. NVIDIA Warp
NVIDIA Warp 是一個(gè) Python 框架,可以在 NVIDIA Omniverse 和 OmniGraph 中編寫 GPU 高性能模擬和圖形代碼。在 Omniverse 中,Warp 可用于數(shù)字人、物理模擬和程序動(dòng)畫。
Warp 使用 kernel-based 編程模型,并且能夠生成 kernel code 的正向和反向版本,使得編寫可微模擬變得很容易。除此之外,Warp 還包含用于模擬和幾何處理的高級(jí)功能,提供更高級(jí)別的數(shù)據(jù)結(jié)構(gòu),例如 Mesh(網(wǎng)格)、Hash Grids(哈希網(wǎng)格)和 Sparse Volumes(稀疏體積)。
2.1 Warp 關(guān)鍵特性
布料模擬:使用有限元法(FEM)和基于邊緣的彎曲模型創(chuàng)建的布料模擬。
基于粒子的模擬:通過將離散元法(DEM)與變形網(wǎng)格碰撞相結(jié)合來模擬具有內(nèi)聚力和粘附力的顆粒材料。
程序動(dòng)畫:在 Warp 中實(shí)現(xiàn)的實(shí)時(shí)程序海洋變形器,可作為 OmniGraph 節(jié)點(diǎn)集成到 NVIDIA Omniverse 中,驅(qū)動(dòng)基于通用場(chǎng)景描述(USD)的網(wǎng)格圖元。
網(wǎng)格變形器:shrink-wrap 變形器使用 kernel-based 的光線投射到眼睛網(wǎng)格上,使眼球周圍的眼瞼變形。
2.2 Warp下載與安裝
要在 NVIDIA Omniverse 中使用 Warp,可以從 Extension 列表中搜索并啟用“Warp”。
omni.warp 擴(kuò)展提供了 OmniGraph 節(jié)點(diǎn)的集合和示例場(chǎng)景,演示了 OmniGraph 中 Warp 的用法。啟用 omni.warp 擴(kuò)展會(huì)自動(dòng)啟用 omni.warp.core 擴(kuò)展。
利用 omni.warp.core 擴(kuò)展程序?qū)?Warp 安裝到 Omniverse 應(yīng)用程序的 Python 環(huán)境中,用戶可以在腳本和節(jié)點(diǎn)中導(dǎo)入該模塊。啟用后,可以打開腳本編輯器窗口并執(zhí)行以下代碼:
import warp as wp print(wp.__version__)
2.3 在 OmniGraph 中使用 Warp
Warp 在 NVIDIA Omniverse 中的主要用途之一,是可以在 Python 中定義 GPU OmniGraph 節(jié)點(diǎn)。
在 OmniGraph 中執(zhí)行 Warp 代碼有多種方法:
在 Python 中創(chuàng)建一個(gè)自定義 OmniGraph 節(jié)點(diǎn),導(dǎo)入 Warp 模塊。
在 Action Graph 中添加腳本節(jié)點(diǎn),并在腳本中導(dǎo)入 Warp 模塊。
將 Warp Kernel 節(jié)點(diǎn)添加到 Action Graph(需要啟用擴(kuò)展 omni.warp)。
3. NVIDIA Modulus
NVIDIA Modulus 是一個(gè)開源物理機(jī)器學(xué)習(xí)平臺(tái)。該模型將物理學(xué)與深度學(xué)習(xí)訓(xùn)練數(shù)據(jù)相結(jié)合,以構(gòu)建具有近乎實(shí)時(shí)延遲的高保真、參數(shù)化代理模型。Modulus 可通過 Modulus 擴(kuò)展程序與 NVIDIA Omniverse 集成,可用于將 Modulus 訓(xùn)練的模型的輸出可視化。
目前,Modulus 擴(kuò)展程序僅適用于 NVIDIA Omniverse USD Composer 2022.2.0 或更早版本支持的 Linux 版本。因此,如果使用的是 2022 以前的版本,可搜索該擴(kuò)展程序體驗(yàn),本文不再詳述。
4.來自第三方的物理仿真擴(kuò)展程序或連接器
NVIDIA Omniverse 是一個(gè)可擴(kuò)展的計(jì)算平臺(tái),用戶可以基于 Universal Scene Description(OpenUSD)在 Omniverse 中開發(fā)和構(gòu)建自己的自定義程序和應(yīng)用。
4.1 FlexSim
FlexSim 是一家仿真建模軟件提供商,專門從事離散事件仿真,使用戶能夠分析、可視化和優(yōu)化各行各業(yè)的實(shí)際流程。FlexSim 開發(fā)了一個(gè) NVIDIA Omniverse 連接器,使工程師、設(shè)計(jì)師和仿真專家能夠?qū)?FlexSim 模型無縫轉(zhuǎn)換為 OpenUSD 格式。將 FlexSim 的高級(jí)材質(zhì)處理工具包與 Omniverse 中的協(xié)作布局工具相結(jié)合,可以提高仿真規(guī)劃階段的靈活性,并提高數(shù)字孿生操作階段的視覺保真度。
▲ FlexSim 和 NVIDIA Omniverse USD Composer 中的
實(shí)時(shí)同步仿真模型
4.2 SimScale
借助 NVIDIA Omniverse SimScale Converter Extension,可以將 USD prims 作為模型上傳到 SimScale,并將計(jì)算流體動(dòng)力學(xué)和有限元分析模擬引入 NVIDIA Omniverse。
用戶可在 NVIDIA Omniverse USD Composer 中單擊“Windows”>“Extensions”,安裝并啟動(dòng)該擴(kuò)展程序,進(jìn)行體驗(yàn)。
關(guān)于 NVIDIA Omniverse Simulation 相關(guān)操作教程,請(qǐng)參考后續(xù)以 NVIDIA Omniverse USD Composer 應(yīng)用為基礎(chǔ)的視頻教程,將帶大家詳細(xì)了解 Omniverse 中的物理仿真功能。
審核編輯:劉清
-
機(jī)器人
+關(guān)注
關(guān)注
211文章
28640瀏覽量
208395 -
NVIDIA
+關(guān)注
關(guān)注
14文章
5076瀏覽量
103715 -
二進(jìn)制
+關(guān)注
關(guān)注
2文章
796瀏覽量
41756 -
GPU芯片
+關(guān)注
關(guān)注
1文章
303瀏覽量
5897 -
ai技術(shù)
+關(guān)注
關(guān)注
1文章
1290瀏覽量
24451
原文標(biāo)題:Omniverse 教程 (10) : NVIDIA Omniverse 中的物理模擬功能
文章出處:【微信號(hào):Leadtek,微信公眾號(hào):麗臺(tái)科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論