天天看點

在 Omniverse Kit 104 中使用 C++ 和 Python 建立自定義元宇宙應用

作者:NVIDIA英偉達中國
在 Omniverse Kit 104 中使用 C++ 和 Python 建立自定義元宇宙應用

近日,NVIDIA 推出 Omniverse Kit 104 更新。此次更新讓開發者能使用 C++ 和 Python,更輕松地建立、打包并釋出元宇宙應用。借助擴充後的工具包、更高的靈活性以及易于使用的模闆,不同經驗水準的開發者都能建構用于加速特定行業工作流的元宇宙應用和擴充程式。

Omniverse Kit 是一個軟體開發平台。該平台包含了各種用于建構元宇宙應用、擴充程式和微服務的功能和構件 ,并且這些功能和構件正在不斷增加。Omniverse Kit 104 針對關鍵的開發者工具和擴充程式釋出了以下更新:

  • 除了現有的 Python 模闆外,還開放了帶有模闆和執行個體的 C++ 擴充程式開發功能
  • 一個可助力使用者輕松建立自定義應用的新應用模闆
  • 具有先進、開放工作流的 Viewport 2.0
  • 為 Omni.UI.Menu 中的使用者界面帶來新的導航可能性
  • 能夠在操作中封裝擴充功能
  • 通過一個集中式 API 和 UI 來管理熱鍵
  • 經過改進的新文檔

NVIDIA Omniverse 的所有核心應用均基于 Omniverse Kit 而建構,包括 Create、View、Isaac Sim、DRIVE Sim 和 Farm。這些應用均基于軟體堆棧建立,具有豐富的、可共享的擴充程式供使用者使用,例如 Omniverse Create 中包含 300 多個擴充程式,其中甚至還包括了擴充程式管理器!這意味着使用者建構擴充程式的方式與 NVIDIA 建構 Omniverse 功能的方式是相同的。

在 Omniverse Kit 104 中使用 C++ 和 Python 建立自定義元宇宙應用

NVIDIA Omniverse Kit Stack 包含 RTX、PhysX、Omnigraph 和 USD 以及許多自定義擴充程式。

Omniverse Kit 的運作時通過 RTX、PhysX、Omnigraph 和 USD 等元件驅動 Omniverse 模拟和運作。許多擴充程式可以獨立于運作時進行運作,也有許多擴充程式結合了 UI 和運作時,通過利用核心的力量,可以在應用上建立加速擴充程式。

開放帶有模闆和執行個體的 C++ 擴充程式

Kit 104 支援一套新的擴充程式模闆,可供 C++ 開發者使用 C++ 插件建立擴充程式。這些擴充程式模闆儲存在 GitHub 中,包含各種擴充示例。使用者可将這些示例可作為開發 UI 小工具 、USD 互動等内容的參考,無需從頭開始建立擴充程式,便能夠加速應用開發程序。

該擴充程式模闆展示了如何:

  • 建立一個将在啟動時加載的 C++ 插件
  • 為 omni.graph 建立一個 C++ 節點
  • 為 omni.ui 建立有屬性的 C++ 小工具,并且繪制一個簡單矩形框
  • 建立一個可以修改目前 USD 階段的 C++ 插件

另外,許多新的 Python 模闆已在 GitHub 中公開提供,包括建立 UI 場景和建立幾何圖形和指令等示例。

使用 Omniverse Kit 應用模闆輕松建立應用

在 Omniverse Kit 104 中使用 C++ 和 Python 建立自定義元宇宙應用

使用者現在可以在 Omniverse Kit 中建立自定義應用程式,并開發大型、複雜的應用程式,如 Omniverse Create 和 Omniverse View。使用者可以借助新的應用模闆,利用 Omniverse 平台的技術支援,如 RTX、PhysX、Nucleus、OmniGraph 和 USD 等,更輕松地建立自己的應用。

該模闆是一個起點,并附有一句簡單的“hello world”示例,展示了使用 Omniverse Kit 來開發應用的簡便性。該模闆還包含兩個更進階的應用,以展示如何使用 Omniverse 中的衆多擴充程式來建構功能豐富的應用。

使用 Viewport 2.0 實作進階、開放的工作流

Viewport 2.0 專門用于為 Python 開發者實作更加進階的開放式工作流。Create 2022.3 将利用 Viewport 2.0 的特點和功能提供第二個視窗,可賦能創作者在其設計環境中以更多元化的視角進行互動。

NVIDIA 對視窗進行了重新設計并加入了新的擴充程式,包括:

  • 預設視窗運作
  • 視窗菜單系統(omni.ki.viewport.menubar)
  • 子產品化視窗操控器系統 (omni.kit.viewport.manipulator)
  • 實用功能和傳統視窗的相容(omni.kit.viewport.utility)

通過 Omni.ui.Menu 建立

具有更多選項的靈活菜單

Omni.ui.Menu 在 Kit 104 中進行了改造,為導航頁面和使用者界面帶來了新的可能性,其新特征包括:

  • 對 ui.MenuItem 外觀的完全控制(ui.MenuDelegate)
  • 可建立易用的程式性菜單(ui.Menu.build_fn)
  • 輕松進行單選菜單行為(ui.MenuCollection)
  • 在 Python 中重制委托繪制的 ui.MenuItem
在 Omniverse Kit 104 中使用 C++ 和 Python 建立自定義元宇宙應用

使用自定義小工具和靜态視窗拆移功能 ,嘗試新的菜單外觀。

調用和執行操作

Kit 104 可将擴充程式功能封裝在易于調用的操作中。使用者可以編輯這些操作并且在 C++ 和 Python 中使用。操作視窗包含了所有可用的操作,使用者使用擴充程式建立、注冊和執行相關操作。

用于熱鍵的集中式 API 和 UI

Kit 104 引入了一個集中式 API 和 UI 來建立和管理熱鍵。熱鍵通過操作進行啟用并且可以:

  • 通過任意擴充程式建立或注冊
  • 與操作相關
  • 由使用者覆寫和管理
  • 熱鍵綁定可以“專屬”于一個視窗
  • 在熱鍵視窗中輕松找到

經過改進的全新文檔

NVIDIA Omniverse 文檔經過更新後加入了使用者友好型的導航功能,是以在建構應用程式時,使用者可以輕松找到其所需的答案。以下是對文檔進行的一些主要改進:

  • 更新了 HTML,是以建構系統為不同的類生成了增強的索引,同時還有一個涵蓋所有文檔的核心索引
  • 一個新的文檔生成器,使用者可以通過編寫 markdown 檔案輕松建立文檔。這些檔案可以在應用程式中互動使用,也可以導出為傳統的 HTML 在網絡浏覽器中使用
  • 該文檔現在還包含關于風格的資源以及每個小工具的風格屬性清單

使用 Omniverse Kit 建構新的擴充程式

Omniverse 應用的最新版本可以說是了解 Kit 功能的勝地。今年,Omniverse Create 已經推出了 300 多個用 Kit 建構的擴充程式。

  • Action Graph 是 Create 中 Omnigraph 的一個擴充程式,是 Kit 中的一個令人期待的新示例。Action Graph 使使用者可以通過可視化程式設計,在場景内建立事件驅動的行為和邏輯。Kit 還通過新的 GraphEditor.Core 擴充程式建構了經過改進的 Omni.ui.Graph 擴充程式,使使用者更易于開發基于圖形的擴充或應用程式
  • Omni.ui 中有一個名為 Omni.ui.scene 的新架構,使用者可以利用該架構直接在視窗或 3D 環境中為小工具和操控器建構可互動 UI。使用者可通過該擴充程式在 3D 投影場景中建立形狀,并通過手勢系統輕松進行操控
  • Deep Search 視窗是一個用 Kit 建構的擴充程式,利用該擴充程式可以在 Omniverse Nucleus 的資産資料庫中進行基于 AI 的自然語言查詢,以檢索圖像、物體或其他資産。使用者可以将這些資産拖放到其建構的場景中
在 Omniverse Kit 104 中使用 C++ 和 Python 建立自定義元宇宙應用

NVIDIA 最近還推出了帶有 USD 和 Nucleus 的新一代實時協作式工作流——Omniverse Live。建立在 Kit 基礎上的同步層比以往加載速度更快,可賦能分布多地的多個使用者開展實時協作,進行場景修改。實時模式可與任何 Omniverse 應用或連接配接器一起使用,助力創作者在無縫、低損的工作流中進行合作。

開發者擔任“引路人”

許多開發者正在 Omniverse Kit 中建構能夠優化和改進 3D 工作流的實用擴充程式和連接配接器。在做好廣泛應用的準備後,開發者合作夥伴和社群成員可以通過 new self-publishing portal 在 Omniverse Exchange 中釋出應用、連接配接器和擴充程式。

最新釋出的一些擴充程式和連接配接器包括:

  • Reallusion iClone 8.1.0 實時同步連接配接器 ,用于 Omniverse 應用和 iClone 8 之間的無縫互動
  • OTOY OctaneRender hydra render delegate,使 Omniverse 使用者可以在 Omniverse Create 或 View 視窗中直接使用 OctaneRender
  • Nextspace digital twin platform 擴充程式,用于資料和幾何形狀的規範化以推動 AI、分析和模拟的使用
  • SmartCow’s Omniverse 擴充程式,為 AI 車牌識别領域生成大規模車牌資料集的合成資料

近日,NVIDIA 首屆 Omniverse 開發者比賽落下帷幕。本屆比賽中,Omniverse 社群使用者送出了使用 Omniverse Code 和 Omniverse Kit 開發的大量創新的擴充程式。您可以閱讀相關文章 ,獲得開發 Omniverse 擴充程式的靈感。

複制連結“https://www.nvidia.cn/omniverse/enterprise/free-trial/”至浏覽器,了解更多關于 NVIDIA Omniverse 的資訊并免費試用。

推薦閱讀

實作并超越元宇宙:探索 Omniverse 比賽選手為 3D 世界打造的工具

在 Omniverse Kit 104 中使用 C++ 和 Python 建立自定義元宇宙應用