PhysX - PhysX
Orijinal yazar(lar) | NovodeX AG ( ETH Zürih ) |
---|---|
Geliştirici(ler) |
Nvidia Corporation (2008'den günümüze) Ageia (2004-2008) NovodeX AG (2001-2004) |
kararlı sürüm | 9.21.0713 / 12 Ekim 2021
|
depo | https://github.com/NVIDIAGameWorks/PhysX |
İşletim sistemi | Microsoft Windows , macOS , Linux , PlayStation 2 , PlayStation 3 , PlayStation 4 , Xbox 360 , Xbox One , Wii , iOS , Android |
Tip | fizik simülasyonu |
Lisans | BSD-3 |
İnternet sitesi | Nvidia PhysX geliştirici sitesi |
PhysX bir olan açık kaynak gerçek zamanlı fizik motoru katman SDK tarafından geliştirilen Nvidia bir parçası olarak Nvidia GameWorks yazılım paketi .
Başlangıçta, PhysX destekleyen video oyunları amaçlanmış hızlandırılmış tarafından PhysX PPU ( genişleme kartları tarafından tasarlanan Ageia ). Ancak, Ageia'nın Nvidia tarafından satın alınmasından sonra, özel PhysX kartları, API'nin CUDA etkin GeForce GPU'larda çalıştırılması lehine durduruldu . Her iki durumda da, donanım hızlandırma, fizik hesaplamalarının CPU'dan boşaltılmasına ve bunun yerine diğer görevlerin yerine getirilmesine izin verdi.
PhysX ve diğer ara katman fizik motorları, günümüz video oyunlarının büyük bir çoğunluğunda kullanılmaktadır, çünkü oyun geliştiricileri , örneğin yumuşak gövde dinamikleri gibi klasik mekaniği (Newton fiziği) uygulayan kendi kodlarını yazmaktan kurtarırlar .
Tarih
Bugün PhysX olarak bilinen şey, NovodeX adlı bir fizik simülasyon motoru olarak ortaya çıktı. Motor, bir ETH Zürih yan ürünü olan İsviçreli NovodeX AG şirketi tarafından geliştirildi . 2004 yılında Ageia , NovodeX AG'yi satın aldı ve CPU'ya yardımcı olarak fizik hesaplamalarını hızlandırabilecek bir donanım teknolojisi geliştirmeye başladı. Ageia, PhysX teknolojisini çağırdı, SDK NovodeX'ten PhysX olarak yeniden adlandırıldı ve hızlandırıcı kartlara PPU'lar (Fizik İşlem Birimleri) adı verildi.
PhysX kullanan ilk oyun Bet On Soldier: Blood Sport (2005) idi.
2008 yılında Ageia, grafik teknolojisi üreticisi Nvidia tarafından satın alındı. Nvidia , GeForce grafik kartları serisinde PhysX donanım hızlandırmasını etkinleştirmeye başladı ve sonunda Ageia PPU'ları için desteği bıraktı.
PhysX SDK 3.0, Mayıs 2011'de piyasaya sürüldü ve daha verimli çoklu kullanım ve desteklenen tüm platformlar için birleşik bir kod tabanı gibi iyileştirmeler getiren, SDK'nın önemli bir yeniden yazılmasını temsil etti .
At GDC 2015 , Nvidia yapılan kaynak kodu üzerinde mevcut PhysX için GitHub'dan ama developer.nvidia.com de kayıt gerektiriyordu. Tescilli SDK üzerinde ticari ve ticari olmayan kullanım için ücretsiz olarak geliştiricilere sağlandı , Windows , Linux , MacOS , iOS ve Android platformları.
3 Aralık 2018'de PhysX, 3 maddeli bir BSD lisansı altında açık kaynak kodlu hale getirildi , ancak bu değişiklik sadece bilgisayar ve mobil platformlar için geçerliydi.
PhysX 5.0 Aralık 2019'da duyurulmuştu ancak COVID-19 pandemisi nedeniyle halka açıklanmadı .
Özellikleri
PhysX motoru ve SDK, Microsoft Windows, macOS, Linux, PlayStation 3 , PlayStation 4 , Xbox 360 , Xbox One , Wii , iOS ve Android için mevcuttur.
PhysX, çok iş parçacıklı bir fizik simülasyonu SDK'sıdır. Bu destekler sert gövde dinamikleri , yumuşak vücut dinamiği (gibi giysi simülasyonu , yırtılma ve basınçlı bez de dahil olmak üzere), ragdoll'dan ve karakter kontrol olarak, araç dinamiği, parçacıklar ve hacimsel sıvı simülasyonu.
Donanım ivmesi
PPU
Bir fizik işlem birimi (PPU) özel olarak fizik kapsayan özel hesaplamalar, CPU üzerindeki hesaplama yükü azaltmak için tasarlanmış bir işlemci. PhysX PPU'lar ASUS , BFG Technologies , Dell ve ELSA Technology tarafından PCI veya PCIe kart olarak tüketicilere sunuldu .
PhysX SDK'nın 2.8.3 sürümünden itibaren, PPU kartları desteği kaldırıldı ve PPU kartları artık üretilmiyor. Ageia tarafından tasarlanan PhysX PPU bağımsız kartının son enkarnasyonu, özel bir 9800GTX ile kabaca aynı PhysX performansına sahipti.
GPU
Nvidia'nın Ageia'yı satın almasının ardından PhysX geliştirmesi, PPU genişletme kartlarından uzaklaştı ve bunun yerine modern GPU'ların GPGPU yeteneklerine odaklandı .
Modern GPU'lar, bilgisayar grafiklerini işleme ve görüntüleme konusunda çok verimlidir ve yüksek düzeyde paralel yapıları, onları PhysX kullanarak fiziksel simülasyonları hızlandırmak için genel amaçlı CPU'lardan daha etkili kılar.
Herhangi bir CUDA'ya hazır GeForce grafik kartı (en az 32 çekirdekli ve en az 256 MB ayrılmış grafik belleği olan 8 serisi veya sonraki GPU), özel bir PhysX kartı takmaya gerek kalmadan PhysX'ten yararlanabilir.
APEX
Nvidia APEX teknolojisi, PhysX SDK çevresinde oluşturulmuş çok platformlu ölçeklenebilir bir dinamik çerçevedir. İlk olarak Ağustos 2010'da Mafia II'de tanıtıldı . Nvidia'nın APEX'i şu modüllerden oluşuyor: APEX Destruction, APEX Clothing, APEX Particles, APEX Turbulence, APEX ForceField ve 2011'de askıya alınan eski APEX Vegetation.
1.4.1 sürümünden itibaren APEX SDK kullanımdan kaldırılmıştır.
Nvidia FleX
FleX, gerçek zamanlı görsel efektler için parçacık tabanlı bir simülasyon tekniğidir. Geleneksel olarak görsel efektler, katı cisimler, sıvılar, giysiler vb. için özel çözücüler kullanılarak oluşturulan öğelerin bir kombinasyonu kullanılarak yapılır. FleX tüm nesne türleri için birleşik bir parçacık temsili kullandığından, farklı simüle edilmiş maddelerin birbirleriyle etkileşime girebileceği yeni efektler sağlar. sorunsuz. Bu tür birleşik fizik çözücüler, Autodesk Maya'nın nCloth'u ve Softimage'in Lagoa'sı gibi araçların yaygın olarak kullanıldığı çevrimdışı bilgisayar grafikleri dünyasının temel unsurlarıdır . FleX'in amacı, bu çevrimdışı uygulamaların yeteneklerini gerçek zamanlı bilgisayar grafiklerine getirmek için GPU'ların gücünü kullanmaktır.
Real World Technologies'den Eleştiri
5 Temmuz 2010'da Real World Technologies, PhysX mimarisinin bir analizini yayınladı. Bu analize göre, o sırada PhysX uygulamalarında kullanılan kodun çoğu, herhangi bir çoklu iş parçacığı optimizasyonu olmadan x87 talimatlarına dayanıyordu . Bu, PhysX kodunu CPU üzerinde çalıştırırken önemli performans düşüşlerine neden olabilir. Makale, SSE talimatlarını kullanarak bir PhysX yeniden yazmanın CPU PhysX ve GPU PhysX arasındaki performans farkını önemli ölçüde azaltabileceğini öne sürdü .
Gerçek Dünya Teknolojileri analizine yanıt olarak, PhysX'in ürün müdürü Mike Skolones, çoğu oyunun önce konsollar için geliştirilip daha sonra PC'ye taşınması nedeniyle SSE desteğinin geride kaldığını söyledi . Sonuç olarak, modern bilgisayarlar bu oyunları çok az veya hiç optimizasyon olmadan bile konsollardan daha hızlı ve daha iyi çalıştırır. Nvidia'nın Kıdemli Halkla İlişkiler Müdürü Bryan Del Rizzo, çoklu iş parçacığının CPU PhysX 2.x ile zaten mevcut olduğunu ve bunu kullanmanın geliştiriciye bağlı olduğunu açıkladı. Ayrıca otomatik çoklu okuma ve SSE'nin PhysX SDK'nın 3. sürümü ile tanıtılacağını belirtti.
PhysX SDK 3.0, Mayıs 2011'de piyasaya sürüldü ve desteklenen tüm platformlar için daha verimli çoklu kullanım ve birleşik kod tabanı gibi iyileştirmeler getirerek SDK'nın önemli bir yeniden yazılmasını temsil etti.
kullanım
Video oyunlarında PhysX
PhysX teknolojisi, Unreal Engine (sürüm 3 ve üzeri ), Unity , Gamebryo , Vision (sürüm 6 ve üzeri ), Instinct Engine, Panda3D , Diesel , Torque , HeroEngine ve BigWorld gibi oyun motorları tarafından kullanılmaktadır .
Bir avuç büyük fizik motorundan biri olarak The Witcher 3: Wild Hunt , Warframe , Killing Floor 2 , Fallout 4 , Batman: Arkham Knight , Borderlands 2 gibi birçok oyunda kullanılmaktadır. fizik simülasyonlarını işlemek için CPU.
Donanım hızlandırmalı PhysX için isteğe bağlı desteğe sahip video oyunları genellikle yırtılabilir kumaş, dinamik duman veya simüle edilmiş parçacık kalıntıları gibi ek efektler içerir.
Diğer yazılımlarda PhysX
PhysX destekli diğer yazılımlar şunları içerir:
- Active Worlds (AW), istemcisi Windows üzerinde çalışan bir 3B sanal gerçeklik platformu
- Amazon Lumberyard , Amazon tarafından geliştirilen bir 3D oyun geliştirme motoru
- Autodesk 3ds Max , Autodesk Maya ve Autodesk Softimage , bilgisayar animasyon paketleri
- DarkBASIC Professional (DarkPHYSICS yükseltmesiyle), oyun geliştirmeyi hedefleyen bir programlama dili
- Etkileşimli 3D grafikler oluşturmak için entegre bir geliştirme ortamı olan DX Studio
- Futuremark 'ın 3DMark06 ve Vantage kıyaslama araçları
- Microsoft Robotics Studio , robot kontrolü ve simülasyonu için bir ortam
- Nvidia'nın SuperSonic Sled ve Raging Rapids Ride, teknoloji demoları
- OGRE (NxOgre sarmalayıcı aracılığıyla), bir açık kaynak işleme motoru
- Fiziksel bir simülasyon API soyutlama sistemi olan Fizik Soyutlama Katmanı ( PhysX için COLLADA ve Scythe Physics Editor desteği sağlar)
- Rayfire, Autodesk 3ds Max için kırılma ve diğer fizik simülasyonlarına izin veren bir eklenti
- Fizik Motoru Değerlendirme Laboratuvarı, fizik motorlarını değerlendirmek, karşılaştırmak ve kıyaslamak için tasarlanmış bir araçtır.
- Epic Games'in Unreal Engine oyun geliştirme yazılımı . Unreal Engine 4.26 ve sonrası, PhysX'i resmi olarak kullanımdan kaldırmıştır.
- Unity ApS tarafından Unity (oyun motoru) . Unity'nin Veri Odaklı Teknoloji Yığını PhysX kullanmaz.
Ayrıca bakınız
- DirectX
- Bullet (yazılım)
- Havok (yazılım)
- Dynamics Engine'i açın
- Newton Oyun Dinamiği
- OpenGL
- girdap (yazılım)
- AGX Çoklu Fizik