Evren Sahne Tanımı (OpenUSD), karmaşık 3D dünyaları tanımlamak, birleştirmek, simüle etmek ve işbirliği yapmak için güçlü, açık ve genişletilebilir bir ekosistem sunar. Dijital ikizler için devasa veri kümesi yönetiminden oynatmalarda gerçek zamanlı render etmeye ve sanayi operasyonlarını sadeleştirmeye kadar, OpenUSD, endüstrilerin 3D verilerle çalışma biçimini dönüştürüyor.
Python’un script yazma yetenekleri ve kullanım kolaylığı, OpenUSD ile mükemmel bir uyum içinde çalışarak, görevleri otomatikleştirmeye ve geliştirme sürecini hızlandırmaya yardımcı olur.
Bu yazıda, Python ve USD arasındaki etkileşimi keşfedecek ve başlangıç yapmak için kaynaklar sağlayacağız.
Python’un OpenUSD için Önemi
OpenUSD, temel olarak C++ dilinde geliştirilmiştir ve 3D sahne manipülasyonu için yüksek performanslı ve verimli bir çerçeve sunar. C++ API’si birkaç önemli pakete ayrılmıştır:
- Base: Uygulama bağımsız temeller içerir.
- USD: USD dosyalarının yazılması, okunması ve birleştirilmesi için modüller içerir. USD’yi genişletmek ve uyarlamak için eklenti arayüzleri tanımlar.
- İmg: Hydra donanım render aracı ve diğer düşük seviye görüntü hizmetlerini barındırır.
- USD İmg: USD ve Hydra’yı bağlar, verilerin verimli okuması ve görselleştirilmesi için adaptörler sağlar. usdview gibi araçlar içerir.
Bununla birlikte, USD, çoğu kitaplığı için Python bağlayıcıları sunarak C++ bilgisine ihtiyaç duymadan hızlı prototipleme, script yazma ve otomasyon yapmayı erişilebilir hale getirir.

Python ile OpenUSD iş akışlarını optimize etmek için bu kütüphanenin temel kavramlarını anlamak önemlidir. NVIDIA, geliştiricilerin OpenUSD becerilerini geliştirmesi için ücretsiz kurslar sunmaktadır. Bu kurslara OpenUSD: Temelleri Öğren adresinden ulaşabilirsiniz.
Python’un Sağladığı Avantajlar
Python, prototipleme için son derece esnek bir dil olduğundan ve derleme ya da Makefile gerektirmediğinden tercih edilir. Kullanıcılar, sahne oluşturma, varlık doğrulama ve sahne optimizasyonu gibi görevlerine odaklanabilir; bu yüzden OpenUSD kullanıcıları için idealdir.
Aşağıda, NVIDIA Omniverse platformunda OpenUSD’nin entegrasyonunu sağlayan API, SDK ve hizmetlerden bazılarını bulabilirsiniz:
- USD Exchange SDK
- USD Exchange SDK, geliştiricilerin kendi USD girdi ve çıktı çözümlerini tasarlamasına, oluşturmasına ve test etmesine yardımcı olur. Aşağı düzey USD kavramlarını tamamlayacak daha yüksek düzeyde kullanışlı fonksiyonlar sağlar.
- USD Varlık Doğrulayıcı
- USD Varlık Doğrulayıcı, OpenUSD varlıklarının uyumluluğunu kural tabanlı doğrulama yaparak kontrol eden bir Omniverse eklentisidir. Katmanlar, aşamalar ve bireysel primitive gibi farklı bileşenleri doğrulayarak hata tespitine yardımcı olur.
- Sahne Optimizasyon Aracı
- Sahne Optimizasyon Aracı, sahnelerin geliştirilmesi için gereken belleği azaltır ve render sürelerini hızlandırır. Materyalleri, geometrik karmaşıklığı optimize eder.
- OpenUSD Kod Örnekleri
- OpenUSD Kod Örnekleri havuzunda, sahne oluşturma, özellik ve metaveri yönetimi konularındaki yaygın görevler için Python, C++ ve USD’deki yardımcı kod parçalarını keşfedebilirsiniz.
Python ile Omniverse ile etkileşim kurmayı öğrenmek için Shane Reetz’in YouTube videosuna göz atabilirsiniz.
Python ile OpenUSD Kullanım Alanları
Yukarıda bahsedilen araçların yanı sıra, Python ve OpenUSD ile yaygın olarak kullanılan bazı kullanım senaryolarına bakacağız.
Veri Çıkartma ve USD’ye Dönüştürme
USD ile çalışmaya başlamak için ilk adım, verinizi USD formatına aktarmaktır. USD Veri Değişim Kataloğu, mevcut varlıkları USD iş akışlarına entegre etmeyi kolaylaştıran içe aktarıcılar, dışa aktarıcılar ve dönüştürücüler içerir.
Daha fazla bilgi için OpenUSD Kullanımı ve Veri Değişim Hatları Geliştirmek kursuna göz atarak veri çıkartma ve dönüştürme teknikleri üzerine pratik kazanabilirsiniz.
Doğrulama ve Hata Düzeltme
Otomatik doğrulama scriptleri, hataları erkenden yakalayarak iş akışı sorunlarını önler. Python, iş akışı durumu ve performansını izlemek için izleme araçları oluşturmak için kullanılabilir. Omni Varlık Doğrulayıcı, USD Uyum Kontrolörü çerçevesini kullanarak varlıkları doğrular ve iş akışı entegrasyonunu sorunsuz hale getirir.
- Temel kurallar: Temel USD doğruluğunu kontrol edin.
- Geometri kuralları: Ağı mesh yapısı, alt bölümler ve kullanılmayan veya sıfır alanlı öğeleri kaldırın.
- Düzen kuralları: Doğru varsayılan primleri sağlayın ve prim belirleyicileri doğrulayın.
- Performans: USDC formatını kullanarak iyileştirebilecek katmanların kontrolünü gerçekleştirin.
Sahne Oluşturma Otomasyonu
Python scriptleri, sahne oluşturma sürecini otomatikleştirerek manuel çabayı azaltabilir ve tutarlılığı artırabilir. Sahne oluşturma işlemlerini hızlandırır ve daha karmaşık sahne tasarımına olanak tanır. Işıklar, materyaller gibi unsurlar oluşturma örneklerine USD Exchange Örnekleri belgesinde ulaşabilirsiniz.
Belirlenen varlık yapısı karmaşık 3D sahnelerin yönetimi için önemlidir. Modülerlik, varlıkları daha küçük, yeniden kullanılabilir bileşenlere ayırma ve kompozisyon eğrileri kullanma ilkesidir. Python’un nesne yönelimli doğası, modüler ve yeniden kullanılabilir kod geliştirmek için idealdir.
Sahne yapılandırma stratejilerini ve pipeline verimliliğinizi artırmak için doğrudan deneyim kazanmak ister misiniz? Ücretsiz DLI kursu olan Varlık Yapısı Prensipleri ve İçerik Birleşimi Öğrenin‘i inceleyebilirsiniz.
Sahne Yazım Araçları Oluşturma
Python, belirli iş akışlarına göre özelleştirilmiş araçların oluşturulmasına olanak tanır ve bu da 3D içerik oluşturumu işlemini kolaylaştırır. Bu araçlarla toplulukla işbirliği yaparak geliştirme süreçlerini paylaşabilirsiniz.
Örneğin, UsdGeomSphere şemasını kullanarak Python ile bir Küre prim tanımlayabilirsiniz. Aşağıdaki kod, “simple_scene.usda” adında bir dosya oluşturacak ve içeriği şuna benzeyecek:
from pxr import Usd, UsdGeom, Sdf
# Yeni bir sahne oluştur
stage = Usd.Stage.CreateNew("simple_scene.usda")
# Yeni bir Xform prim tanımla
xform_prim = UsdGeom.Xform.Define(stage, "/MyXform")
# Xform'un çevirisini ayarla
xform_prim.AddTranslateOp().Set((1, 2, 3))
# Xform altında yeni bir Küre prim tanımla
sphere_prim = UsdGeom.Sphere.Define(stage, "/MyXform/MySphere")
# Kürenin yarıçapını ayarla
sphere_prim.GetRadiusAttr().Set(5.0)
# Sahneyi bir dosyaya kaydet
stage.Save()
#usda 1.0
(
defaultPrim = "MyXform"
upAxis = Z
)
def Xform "MyXform"
{
double3 xformOp:translate = (1, 2, 3)
uniform token[] xformOpOrder = ["xformOp:translate"]
def Sphere "MySphere"
{
double radius = 5
}
}
Özel scriptler ve araçlar geliştirmek için harika bir başlangıç noktası, omniverse uzantısı oluşturma ve özelleştirme konulu OpenUSD öğrenin kursudur.
Geliştiriciler, Omniverse Kit SDK kullanarak OpenUSD ile özel sahne yazım araçları geliştirmeye hızlı bir başlangıç yapabilir. Omniverse Kit SDK, USD ve UI çerçeveleri ile birlikte PhysX, Cloud XR, Audio2Face ve diğer kütüphaneler için SDK entegrasyonlarını içerir.
OpenUSD ile Başlama
Python’da OpenUSD ile denemeler yapmak için gerekli kütüphaneleri pip install usd-core
komutunu çalıştırarak hızlıca kurabilirsiniz. Daha akıcı bir geliştirme deneyimi için IDE’nize otomatik tamamlama desteği eklemek üzere pip install types-usd
komutunu da kullanabilirsiniz.
OpenUSD ile ilgili daha fazla kaynak için, NVIDIA GTC 2025’teki OpenUSD oturumlarını izleyebilir ve OpenUSD İttifakı (AOUSD) forumunda topluluk ile etkileşime geçebilirsiniz.
Hazır mısınız? Temel bilgileri ve pratik iş akışlarını kapsayan ücretsiz, kendi hızınızda öğrenme kursu‘na kaydolun.
OpenUSD ile ilgili tüm gelişmelerden haberdar olmak için OpenUSD v25.05 sürümü‘nün sunduğu yeni özelliklere göz atabilirsiniz.