물리 X
PhysX| 원저작자 | NovodeX AG(ETH 취리히) |
|---|---|
| 개발자 | Nvidia Corporation (2008-현재) 에이지아 (2004-2008) 노보덱스 AG (2001-2004) |
| 안정된 릴리스 | 9.21.0713 / 2021년 10월 12일 ( |
| 저장소 | https://github.com/NVIDIAGameWorks/PhysX |
| 기입처 | C++ |
| 운영 체제 | Microsoft Windows, macOS, Linux, PlayStation 2, PlayStation 3, PlayStation 4, Xbox 360, Xbox One, Wii, iOS, Android |
| 유형 | 물리 시뮬레이션 |
| 면허증. | BSD-3 |
| 웹 사이트 | Nvidia PhysX 개발자 사이트 |
PhysX는 Nvidia GameWorks 소프트웨어 스위트의 일부로 Nvidia가 개발한 오픈 소스[1] 실시간 물리 엔진 미들웨어 SDK입니다.
처음에 PhysX를 지원하는 비디오 게임은 PhysX PPU(Ageia가 설계한 확장 카드)에 의해 가속되는 것을 의도했습니다.그러나 Ageia가 Nvidia에 인수된 후 전용 PhysX 카드는 CUDA 지원 GeForce GPU에서 실행되는 API를 위해 단종되었습니다.두 경우 모두 하드웨어 가속을 통해 CPU에서 물리 계산을 오프로드할 수 있으므로 대신 다른 작업을 수행할 수 있습니다.
PhysX 및 기타 미들웨어 물리 엔진은 게임 개발자가 예를 들어 소프트바디 [2]다이내믹스를 수행하기 위해 클래식 메카니즘(뉴턴 물리)을 구현하는 코드를 직접 작성할 필요가 없기 때문에 오늘날 대부분의 비디오 게임에 사용되고 있습니다.
역사
오늘날 PhysX라고 알려진 것은 NovodeX라고 불리는 물리 시뮬레이션 엔진에서 유래했습니다.이 엔진은 스위스 회사인 노보데X AG에 의해 개발되었는데, 이 회사는 ETH 취리히의 자회사이다.[3]2004년 Ageia는 NovodeX AG를 인수하여 물리 계산을 가속화하고 CPU를 지원하는 하드웨어 기술을 개발하기 시작했습니다.Ageia는 이 기술을 PhysX라고 불렀고 SDK는 NovodeX에서 PhysX로, 액셀러레이터 카드는 PPU(물리처리장치)[4]라고 불렀습니다.
PhysX를 최초로 사용한 게임은 Bet On Solder: Blood Sport(2005)였다.[citation needed]
2008년에 Ageia는 그래픽 테크놀로지 제조사인 [5]Nvidia에 인수되었습니다.Nvidia는 GeForce 그래픽[6] 카드 제품 라인에서 PhysX 하드웨어 액셀러레이션을 활성화하기 시작했고, 최종적으로 Ageia PPU [7]지원을 중단했습니다.
PhysX SDK 3.0은 2011년 5월에 출시되었으며 SDK의 대폭적인 개서를 나타냄으로써 지원되는 모든 [2]플랫폼에 대해 보다 효율적인 멀티스레딩 및 통합 코드 기반 등의 개선점을 제공했습니다.
GDC 2015에서 Nvidia는 PhysX의 소스 코드를 GitHub에서 사용할 수 있도록 했지만 [8]developer.nvidia.com에서 등록해야 했습니다.독점 SDK는 Windows,[9] Linux, MacOS, iOS 및 Android 플랫폼에서 상업용과 비상업용으로 개발자에게 무료로 제공되었습니다.
2018년 12월 3일 PhysX는 3개 조항 BSD 라이선스로 오픈소스가 되었지만, 이 변경은 컴퓨터와 [10]모바일 플랫폼에만 적용되었습니다.
PhysX 5.0은 2019년 12월에 발표되었지만 COVID-19 대유행으로 [citation needed]인해 일반에 공개되지 않았다.
특징들
PhysX 엔진과 SDK는 Microsoft Windows, macOS, Linux,[10] PlayStation [11][12]3, PlayStation 4, [13]Xbox 360,[14] Xbox One,[15] Wii,[16] iOS 및 [10]Android에서 사용할 수 있습니다.
PhysX는 멀티 스레드 물리 시뮬레이션 SDK입니다.견고한 차체 다이내믹스, 부드러운 차체 다이내믹스(인열 및 가압된 천을 포함한 천 시뮬레이션), 래그돌 및 캐릭터 컨트롤러, 차량 다이내믹스, 입자 및 체적 유체 시뮬레이션을 지원합니다.
하드웨어 액셀러레이션
PPU
물리처리장치(PPU)는 CPU의 계산부하, 특히 물리학과 관련된 계산을 경감하도록 특별히 설계된 프로세서입니다.PhysX PPU는 ASUS,[17] BFG Technologies,[18][19] Dell[20] 및 ELSA [21]Technology에 의해 PCI 또는 PCIe 카드의 형태로 소비자에게 제공되었습니다.
PhysX SDK 버전 2.8.3 이후 PPU 카드의 지원은 폐지되어 PPU 카드는 [7]제조되지 않게 되었습니다.Ageia가 설계한 PhysX PPU 스탠드아론 카드의 마지막 버전은 전용 9800GTX와 [22]거의 동일한 PhysX 성능을 보였습니다.
GPU
Nvidia의 Ageia 인수 후 PhysX 개발은 PPU 확장카드에서 벗어나 최신 GPU의 GPGPU 기능에 초점을 맞췄습니다.
최신 GPU는 컴퓨터 그래픽의 조작과 표시에 매우 효율적이며 병렬 구조가 뛰어나 물리X를 사용한 물리 시뮬레이션을 고속화하는 범용 CPU보다 효율적입니다.
CUDA 대응 GeForce 그래픽 카드 (8 시리즈 이상의 GPU, 최소 32 코어, 최소 256 MB의 전용 그래픽 메모리[23])는 전용 PhysX 카드를 설치할 필요 없이 PhysX를 이용할 수 있습니다.
에이펙스
Nvidia APEX 기술은 PhysX SDK를 기반으로 구축된 멀티 플랫폼 확장 가능한 다이내믹스 프레임워크입니다.그것은 [24]2010년 8월에 마피아 II에서 처음 소개되었다.Nvidia의 APEX는 APEX Destruction, APEX Clothing, APEX Particles, APEX 난류, [25][26]APEX ForceField 및 2011년에 중단된 이전 APEX Generation 모듈로 구성되어 있습니다.
버전 1.4.1부터는 APEX SDK가 [27]더 이상 사용되지 않습니다.
Nvidia FleX
FleX는 실시간 시각 효과를 위한 입자 기반 시뮬레이션 기법입니다.전통적으로 시각 효과는 강체, 유체, 의류 등을 위해 특수 솔버를 사용하여 생성된 요소의 조합을 사용하여 만들어집니다.FleX는 모든 객체 유형에 대해 통합된 입자 표현을 사용하기 때문에 서로 다른 시뮬레이션된 물질이 서로 원활하게 상호작용할 수 있는 새로운 효과를 가능하게 합니다.이러한 통합 물리 솔버는 오토데스크 Maya의 nCloth나 Softimage의 Lagoa와 같은 도구가 널리 사용되는 오프라인 컴퓨터 그래픽 세계의 주요 요소입니다.FleX의 목표는 GPU의 성능을 활용하여 이러한 오프라인 애플리케이션의 기능을 실시간 컴퓨터 [28]그래픽스에 제공하는 것입니다.
리얼 월드 테크놀로지로부터의 비판
2010년 7월 5일 Real World Technologies는 PhysX 아키텍처의 분석을[29] 발표했습니다.이 분석에 따르면 당시 PhysX 어플리케이션에서 사용된 코드의 대부분은 멀티스레딩 최적화 없이 x87 명령어에 기반하고 있었습니다.이로 인해 CPU에서 PhysX 코드를 실행할 때 성능이 크게 저하될 수 있습니다.이 기사에서는 SSE 명령을 사용하여 PhysX를 다시 쓰면 CPU PhysX와 GPU PhysX 간의 성능 차이를 크게 줄일 수 있다고 제안했습니다.
Real World Technologies의 분석에 대해 PhysX의 제품 매니저인 Mike Skolones는 대부분의[30] 게임이 먼저 콘솔용으로 개발되고 다음으로 PC로 이식되기 때문에 SSE의 지원은 뒷전이었다고 말했습니다.그 결과 최신 컴퓨터는 이러한 게임을 거의 또는 전혀 최적화하지 않고도 콘솔보다 더 빠르고 효율적으로 실행할 수 있습니다.Nvidia의 시니어 PR 매니저인 Bryan Del Rizzo는 멀티스레딩은 CPU PhysX 2.x에서 이미 제공되고 있으며 이를 사용하는 것은 개발자의 몫이라고 설명했습니다.또한 PhysX [31]SDK 버전 3에서 자동 멀티스레딩 및 SSE가 도입될 것이라고 밝혔습니다.
PhysX SDK 3.0은 2011년 5월에 출시되었으며 SDK의 대폭적인 개서를 나타냄으로써 지원되는 모든 [2]플랫폼에 대해 보다 효율적인 멀티스레딩 및 통합 코드 기반 등의 개선점을 제공했습니다.
사용.
비디오 게임의 PhysX
PhysX 기술은 Unreal Engine(버전 3 이후), Unity, Gamebryo, Vision(버전 6 이후), Instrent Engine,[32] Panda3D, Diesel, Torque, Hero Engine 및 Big World와 [23]같은 게임 엔진에 사용됩니다.
몇 안 되는 주요 물리 엔진 중 하나로, 그것은 위처 3: 와일드 헌트, 워프레임, 킬링 플로어 2, 폴아웃 4, 배트맨과 같은 많은 게임에 사용된다. 아캄 나이트, 보더랜드 2 등대부분의 게임은 CPU를 사용하여 물리 시뮬레이션을 처리합니다.
하드웨어 액셀러레이션 PhysX를 옵션으로 지원하는 비디오 게임에는 찢어질 수 있는 천, 동적 연기, 모의 입자 파편 [33][34][35]등의 추가 효과가 포함되어 있는 경우가 많습니다.
다른 소프트웨어의 PhysX
PhysX를 지원하는 기타 소프트웨어는 다음과 같습니다.
- Active Worlds(AW), Windows에서 클라이언트를[citation needed] 실행하는 3D 가상현실 플랫폼
- 아마존이 개발한[36] 3D 게임 개발 엔진인 Amazon Lumberyard
- Autodesk 3ds Max, Autodesk Maya 및 Autodesk Softimage, 컴퓨터 애니메이션[37][38][39] 제품군
- DarkBASIC Professional (DarkPhysics 업그레이드 포함), 게임 개발용[40] 프로그래밍 언어
- DX Studio는 인터랙티브한 3D[41] 그래픽스를 만들기 위한 통합 개발 환경입니다.
- Futuremark의 3D Mark06 및 Vantage 벤치마크[42] 도구
- 로봇 제어 및 시뮬레이션을 위한 환경인 Microsoft Robotics[43] Studio
- Nvidia의 SuperSonic Sled and Ranging Rapids Ride, 테크놀로지 데모
- OGRE(NxOgre 래퍼 사용), 오픈 소스 렌더링[citation needed] 엔진
- 물리 시뮬레이션 API 추상화 시스템인 Physics Abstraction Layer(물리 추상화 레이어) (물리 [44]X에 대한 COLADA 및 Skythe Physics Editor 지원 제공)
- Rayfire, 프랙처링 및 기타 물리 시뮬레이션이[citation needed] 가능한 Autodesk 3ds Max용 플러그인
- Physical Engine Evaluation Lab은 물리 엔진을 평가, 비교 및 벤치마킹하기 위한 도구입니다.[45]
- 에픽게임즈의 언리얼 엔진 게임 개발 소프트웨어.Unreal Engine 4.26 이후로는 PhysX가 공식적으로 권장되지 않습니다.[46]
- 유니티 APS에 의한 유니티Unity의 Data-Oriented Technology Stack에서는 PhysX를 사용하지 않습니다.[47]
「 」를 참조해 주세요.
레퍼런스
- ^ "NVIDIA PhysX SDK 4.1". Engadget. Retrieved April 5, 2022.
- ^ a b c "NVIDIA announces the release of PhysX SDK V3". Nvidia. Archived from the original on May 24, 2011. Retrieved June 3, 2011.
- ^ "NovodeX AG". ETH Zürich. Archived from the original on January 8, 2018. Retrieved December 4, 2018.
- ^ César A. Berardini (April 12, 2005). "AGEIA Technologies Interview". Archived from the original on September 21, 2011. Retrieved June 8, 2011.
- ^ "NVIDIA completes Acquisition of AGEIA Technologies" (Press release). NVIDIA Corporation. February 13, 2008. Retrieved March 18, 2009.
- ^ "PhysX For CUDA, Linux Support A Given?". Phoronix. Phoronix Media. February 14, 2008. Retrieved February 14, 2008.
- ^ a b "How to restore PPU support with latest PhysX Drivers PhysXInfo.com – PhysX News". PhysXInfo.com. January 17, 2011. Retrieved November 30, 2011.
- ^ "PhysX On GitHub". Nvidia. Retrieved March 6, 2015.
- ^ "PhysX SDK as of January 7, 2017". Nvidia. Archived from the original on January 7, 2017. Retrieved September 3, 2017.
- ^ a b c "PhysX SDK". NVIDIA Developer. November 28, 2018. Archived from the original on December 5, 2018. Retrieved December 5, 2018.
- ^ "Sony Computer Entertainment Enters Into Strategic Licensing Agreement With AGEIA" (PDF) (Press release). Sony Computer Entertainment, Inc. July 21, 2005. Archived from the original (PDF) on March 11, 2006. Retrieved August 23, 2006.
- ^ "Playstation 3 gets free PhysX from Nvidia". Kotaku.
- ^ Lowe, Scott (March 7, 2013). "Nvidia Announces PhysX Support for PlayStation 4".
- ^ "PhysX – Overview – GeForce". Nvidia.com. Archived from the original on April 29, 2009. Retrieved November 30, 2011.
- ^ "NVIDIA Announces PhysX Support for Microsoft Xbox One Game Console". Nvidia.com. Archived from the original on November 9, 2014. Retrieved November 9, 2014.
- ^ "News – Pre-GDC: Nvidia PhysX Approved For Wii Developers". Gamasutra. March 19, 2009. Retrieved November 30, 2011.
- ^ "Asus 128mb PhysX Card Review/Preview". July 12, 2006.
- ^ "AGEIA And BFG Technologies Enter Into Retail Distribution Agreement". Archived from the original on April 26, 2006.
- ^ "BFG Ageia PhysX Card Review". October 1, 2007.
- ^ "AGEIA PhysX - graphics card - AGEIA PhysX - 128 MB Specs". Cnet.
- ^ "ELSA teams up with Ageia".
- ^ "English articles from PC Games Hardware". www.pcgameshardware.com. January 26, 2009.
- ^ a b "PhysX FAQ". Nvidia.com. Retrieved December 10, 2015.
- ^ Olin Coles. "Mafia-II Video Game Performance Review". BenchmarkReviews.com. Retrieved August 23, 2010.
- ^ "APEX". Retrieved June 8, 2011.
- ^ "Category:APEX - PhysX Wiki". PhysXInfo.com. Retrieved July 21, 2013.
- ^ "APEX 1.4.1 - Release Notes (APEX has been deprecated)". gameworksdocs.nvidia.com. Retrieved December 5, 2018.
- ^ "NVIDIA FleX". NVIDIA Developer. August 13, 2015. Retrieved April 17, 2019.
- ^ "PhysX87: Software Deficiency". www.realworldtech.com.
- ^ Stokes, Jon (July 8, 2010). "Did NVIDIA cripple its CPU gaming physics library to spite Intel?". Arstechnica.com. Retrieved November 30, 2011.
- ^ "Nvidia: We're not hobbling CPU PhysX thinq_ Page 1". Thinq.co.uk. Retrieved November 30, 2011.
- ^ "Instinct Software - Instinct Engine SDK". Instinctengine.com. Archived from the original on February 13, 2015. Retrieved October 4, 2013.
- ^ Matt Butrovich (February 12, 2009). "A look at PhysX in Mirror's Edge". The Tech Report. Retrieved April 6, 2011.
- ^ Rich Brown (September 21, 2009). "Nvidia's PhysX makes PC Batman: Arkham Asylum worth the wait". cNET.com. Retrieved April 6, 2011.
- ^ Matthew Murray (September 2, 2010). "Mafia II: Is Applied PhysX Worth It?". ExtremeTech. Retrieved April 6, 2011.
- ^ "PhysX - Lumberyard User Guide".
- ^ Jim Thacker (March 1, 2011). "Videos: Autodesk reveals new features in Maya 2012". cgchannel.com. Retrieved April 6, 2011.
- ^ "3ds Max 2012 and Maya 2012 adds PhysX support". Beyond3D.com. March 1, 2011. Archived from the original on July 8, 2017. Retrieved April 6, 2011.
- ^ Randall Hand (May 5, 2010). "NVidia PhysX and CUDA in Softimage 2011". Vizworld.com. Retrieved April 6, 2011.
- ^ "The Game Creators Integrate AGEIA PhysX Technology into DarkBASIC Professional" (Press release). The Game Creators. March 22, 2006. Archived from the original on April 27, 2006. Retrieved September 23, 2006.
- ^ "Overview". DX Studio. Worldweaver. Archived from the original on July 5, 2009. Retrieved November 2, 2008.
- ^ "AGEIA Joins Futuremark's 3DMark Benchmark Development Program". FindArticles. CBS Interactive. BusinessWire. September 27, 2006. Retrieved November 3, 2008.
- ^ "Simulation Overview". Microsoft Robotics Developer Center. Microsoft.
- ^ Boeing, Adrian. "Engines". Physics Abstraction Layer. Retrieved November 18, 2007.
- ^ Pierre-Terdiman (March 22, 2019), GitHub - Pierre-Terdiman/PEEL: Physics Engine Evaluation Lab., retrieved March 22, 2019
- ^ "Unreal Engine 4.26 Preview". September 24, 2020.
- ^ "Unity - Manual: Physics".