PhysX

PhysX
원저자NovodeX (취리히 연방 공과대학교)
개발자엔비디아
안정화 버전
Blast 5.0.6; PhysX SDK 5.5.0; Flow 2.1.0; PhysX System Software 9.23.1019 / 2024년 12월 13일 (2024-12-13)
저장소
운영 체제리눅스, macOS, 윈도우 XP, 윈도우 비스타, 윈도우 7, 윈도우 8, Wii, 플레이스테이션 3, 엑스박스 360 플레이스테이션 4, 엑스박스 원, 안드로이드, iOS
종류동적 시뮬레이션
라이선스사유 및 상용
웹사이트엔비디아 PhysX 개발자 사이트
BFG 피직스 카드

피직스(PhysX)는 엔비디아가 엔비디아 게임웍스 소프트웨어 제품군의 일부로 개발한 오픈 소스 실시간 물리 엔진 미들웨어 SDK이다.

초기에는 PhysX를 지원하는 비디오 게임이 PhysX PPU (에이지아가 설계한 확장 카드)에 의해 하드웨어 가속되도록 의도되었다. 그러나 에이지아가 엔비디아에 인수된 후, 전용 PhysX 카드는 CUDA가 활성화된 지포스 GPU에서 API를 실행하는 방식으로 단종되었다. 두 경우 모두 하드웨어 가속은 CPU에서 물리 계산을 오프로드하여 다른 작업을 수행할 수 있도록 했다.

PhysX 및 기타 미들웨어 물리 엔진은 오늘날 많은 비디오 게임에서 사용되는데, 이는 게임 개발자가 예를 들어 연체동역학을 수행하기 위해 고전역학을 구현하는 자체 코드를 작성할 필요 없이 개발 시간을 절약할 수 있도록 하기 때문이다.

역사

오늘날 PhysX로 알려진 것은 NovodeX라는 물리 시뮬레이션 엔진으로 시작되었다. 이 엔진은 스위스 회사이자 취리히 연방 공과대학교의 스핀오프인 NovodeX AG에 의해 개발되었다. 2004년, 에이지아는 NovodeX AG를 인수하고 CPU를 보조하는 물리 계산 가속화 하드웨어 기술 개발을 시작했다. 에이지아는 이 기술을 PhysX라고 불렀고, SDK는 NovodeX에서 PhysX로 이름이 변경되었으며, 가속기 카드는 PPU(Physics Processing Units)로 불렸다.

PhysX 기술을 사용한 최초의 비디오 게임은 2005년 9월 러시아에서만 출시된 더 스탈린 서브웨이이다.

2008년, 에이지아는 그래픽 기술 제조업체인 엔비디아에 인수되었다. 엔비디아는 지포스 그래픽 카드 라인업에서 PhysX 하드웨어 가속을 활성화하기 시작했고 결국 에이지아 PPU에 대한 지원을 중단했다.

PhysX SDK 3.0은 2011년 5월에 출시되었으며, SDK의 중요한 재작성을 나타내며, 더 효율적인 멀티스레딩과 모든 지원 플랫폼을 위한 통합 코드 베이스와 같은 개선 사항을 가져왔다.

GDC 2015에서 엔비디아는 PhysX 소스 코드를 깃허브에 공개했지만, developer.nvidia.com에서 등록해야 했다. 이 사유 소프트웨어 SDK는 Windows, 리눅스, macOS, iOS 및 Android 플랫폼에서 상업적 및 비상업적 용도로 개발자에게 무료로 제공되었다.

2018년 12월 3일, PhysX는 3-절 BSD 라이선스로 오픈 소스화되었지만, 이 변경 사항은 컴퓨터 및 모바일 플랫폼에만 적용되었다.

2022년 11월 8일, 오픈 소스 릴리스가 PhysX 5로 업데이트되었으며, 동일한 3-절 BSD 라이선스를 따른다.

2025년 2월, 지포스 RTX 50 시리즈의 32비트 CUDA 애플리케이션 지원이 중단되어 32비트 타이틀에서 GPU 가속 PhysX가 작동하지 않게 되었다. 이로 인해 미러스 엣지 및 보더랜드 2와 같은 타이틀에서 GPU PhysX 옵션이 CPU에 의해 처리되어 성능 저하가 발생했다.

특징

PhysX 엔진 및 SDK는 마이크로소프트 윈도우, MacOS, 리눅스, 플레이스테이션 3, 플레이스테이션 4, 엑스박스 360, 엑스박스 원, Wii, iOS 및 Android에서 사용할 수 있다.

PhysX는 다중 스레드 물리 시뮬레이션 SDK이다. 강체 동역학, 연체동역학 (찢어지는 옷과 가압된 옷 포함), 래그돌 피직스 및 캐릭터 컨트롤러, 차량 동역학, 입자 시스템 및 부피 유체 시뮬레이션을 지원한다.

하드웨어 가속

PPU

물리 처리 장치 (PPU)는 CPU의 계산 부담, 특히 물리와 관련된 계산 부담을 덜어주기 위해 특별히 설계된 프로세서이다. PhysX PPU는 PCI 또는 PCIe 카드 형태로 ASUS, BFG 테크놀로지스, 델 및 ELSA Technology에서 소비자에게 제공되었다.

PhysX SDK 버전 2.8.3부터 PPU 카드 지원이 중단되었고, PPU 카드는 더 이상 제조되지 않는다. 에이지아가 설계한 PhysX PPU 독립형 카드의 마지막 버전은 전용 9800GTX와 거의 동일한 PhysX 성능을 가졌다.

GPU

엔비디아가 에이지아를 인수한 후, PhysX 개발은 PPU 확장 카드에서 벗어나 현대 GPU의 GPGPU 기능에 초점을 맞추었다.

현대 GPU는 컴퓨터 그래픽을 조작하고 표시하는 데 매우 효율적이며, 고도로 병렬적인 구조는 PhysX를 사용하여 물리 시뮬레이션을 가속화하는 데 일반 CPU보다 더 효과적이다.

모든 CUDA 지원 지포스 그래픽 카드(최소 32코어 및 최소 256MB 전용 그래픽 메모리를 갖춘 8-시리즈 또는 이후 GPU)는 전용 PhysX 카드를 설치할 필요 없이 PhysX를 활용할 수 있다.

APEX

엔비디아 APEX 기술은 PhysX SDK를 기반으로 하는 다중 플랫폼 확장 가능한 동역학 프레임워크이다. 이 기술은 2010년 8월 마피아 II에서 처음 소개되었다. 엔비디아 APEX는 APEX Destruction, APEX Clothing, APEX Particles, APEX Turbulence, APEX ForceField 모듈로 구성되며, APEX Vegetation은 2011년에 중단되었다.

버전 1.4.1부터 APEX SDK는 더 이상 사용되지 않는다.

엔비디아 FleX

FleX는 실시간 시각 효과를 위한 입자 기반 시뮬레이션 기술이다. 전통적으로 시각 효과는 강체, 유체, 의류 등을 위한 전문 솔버를 사용하여 생성된 요소들의 조합으로 만들어진다. FleX는 모든 객체 유형에 대해 통합된 입자 표현을 사용하기 때문에, 서로 다른 시뮬레이션된 물질들이 원활하게 상호작용할 수 있는 새로운 효과를 가능하게 한다. 이러한 통합 물리 솔버는 오프라인 컴퓨터 그래픽스 세계의 주요 요소이며, 오토데스크 마야의 nCloth 및 오토데스크 소프트이미지의 Lagoa와 같은 도구들이 널리 사용된다. FleX의 목표는 GPU의 성능을 사용하여 이러한 오프라인 애플리케이션의 기능을 실시간 컴퓨터 그래픽스로 가져오는 것이다.

Real World Technologies의 비판

2010년 7월 5일, Real World Technologies는 PhysX 아키텍처에 대한 분석을 발표했다. 이 분석에 따르면, 당시 PhysX 애플리케이션에 사용된 대부분의 코드는 멀티스레딩 최적화 없이 X87 명령어를 기반으로 했다. 이는 CPU에서 PhysX 코드를 실행할 때 상당한 성능 저하를 야기할 수 있었다. 이 기사는 SSE 명령어를 사용하여 PhysX를 재작성하면 CPU PhysX와 GPU PhysX 간의 성능 불일치를 크게 줄일 수 있다고 제안했다.

Real World Technologies의 분석에 대한 응답으로, PhysX의 프로덕트 매니저인 마이크 스콜론스(Mike Skolones)는 대부분의 게임이 먼저 콘솔용으로 개발된 다음 PC로 포팅되기 때문에 SSE 지원이 뒤쳐졌다고 말했다. 결과적으로, 현대 컴퓨터는 최적화가 거의 또는 전혀 없어도 콘솔보다 이러한 게임을 더 빠르고 잘 실행한다. 엔비디아의 수석 PR 매니저인 브라이언 델 리조(Bryan Del Rizzo)는 멀티스레딩이 이미 CPU PhysX 2.x에서 사용 가능했으며, 개발자가 이를 활용하는 것은 개발자의 몫이었다고 설명했다. 그는 또한 자동 멀티스레딩과 SSE가 PhysX SDK 버전 3에서 도입될 것이라고 밝혔다.

PhysX SDK 3.0은 2011년 5월에 출시되었으며, SDK의 중요한 재작성을 나타내며, 더 효율적인 멀티스레딩과 모든 지원 플랫폼을 위한 통합 코드 베이스와 같은 개선 사항을 가져왔다.

사용

비디오 게임에서의 PhysX

PhysX 기술은 언리얼 엔진 (버전 3 이상), 유니티, 게임브리오, Vision (버전 6 이상), Instinct Engine, 판다3D, Diesel, 토크, 히어로엔진 및 BigWorld와 같은 게임 엔진에서 사용된다.

몇 안 되는 주요 물리 엔진 중 하나로서, 더 위쳐 3: 와일드 헌트, 워프레임, 킬링 플로어 2, 배트맨: 아캄 나이트, 플래닛사이드 2 및 보더랜드 2와 같은 많은 게임에서 사용된다. 이 게임들의 대부분은 CPU를 사용하여 물리 시뮬레이션을 처리한다.

하드웨어 가속 PhysX에 대한 선택적 지원을 제공하는 비디오 게임은 종종 찢어지는 옷감, 동적 연기 또는 시뮬레이션된 입자 잔해와 같은 추가 효과를 포함한다.

기타 소프트웨어에서의 PhysX

PhysX를 지원하는 기타 소프트웨어는 다음과 같다:

같이 보기

각주

  1. ↑ “NVIDIA PhysX SDK 4.1” (미국 영어). 《Engadget》. 2022년 4월 5일에 확인함.
  2. 1 2 3 “NVIDIA announces the release of PhysX SDK V3”. Nvidia. 2011년 5월 24일에 원본 문서에서 보존된 문서. 2011년 6월 3일에 확인함.
  3. ↑ “NovodeX AG”. 《ETH Zürich》. 2018년 1월 8일에 원본 문서에서 보존된 문서. 2018년 12월 4일에 확인함.
  4. ↑ César A. Berardini (2005년 4월 12일). “AGEIA Technologies Interview”. 2011년 9월 21일에 원본 문서에서 보존된 문서. 2011년 6월 8일에 확인함.
  5. ↑ “Physics Engine: PhysX” (영어). 《MobyGames》. 2023년 9월 6일에 확인함.
  6. ↑ “NVIDIA completes Acquisition of AGEIA Technologies” (보도자료). NVIDIA Corporation. 2008년 2월 13일. 2009년 3월 18일에 확인함.
  7. ↑ “PhysX For CUDA, Linux Support A Given?”. 《Phoronix》. Phoronix Media. 2008년 2월 14일. 2008년 2월 14일에 확인함.
  8. 1 2 “How to restore PPU support with latest PhysX Drivers | PhysXInfo.com – PhysX News”. PhysXInfo.com. 2011년 1월 17일. 2011년 11월 24일에 원본 문서에서 보존된 문서. 2011년 11월 30일에 확인함.
  9. ↑ “PhysX On GitHub”. Nvidia. 2015년 3월 6일에 확인함.
  10. ↑ “PhysX SDK as of January 7, 2017”. Nvidia. 2017년 1월 7일에 원본 문서에서 보존된 문서. 2017년 9월 3일에 확인함.
  11. 1 2 3 “PhysX SDK” (영어). 《NVIDIA Developer》. 2018년 11월 28일. 2018년 12월 5일에 원본 문서에서 보존된 문서. 2018년 12월 5일에 확인함.
  12. ↑ “Open Source Simulation Expands with NVIDIA PhysX 5 Release”. Nvidia. 2022년 11월 8일. 2023년 5월 28일에 원본 문서에서 보존된 문서. 2023년 6월 15일에 확인함.
  13. ↑ Klotz, Aaron. “PhysX quietly retired on RTX 50 series GPUs: Nvidia ends 32-bit CUDA app support”. 《Tom's Hardware》. Future US Inc. 2025년 2월 24일에 확인함.
  14. ↑ Bentley, James. “Nvidia has quietly ended support for 32-bit PhysX on its new RTX 50-series, so games like Batman: Arkham City might look and run better on older GPUs”. 《PC Gamer》. Future US Inc. 2025년 2월 24일에 확인함.
  15. ↑ “Sony Computer Entertainment Enters Into Strategic Licensing Agreement With AGEIA” (PDF) (보도자료). Sony Computer Entertainment, Inc. 2005년 7월 21일. 2006년 3월 11일에 원본 문서 (PDF)에서 보존된 문서. 2006년 8월 23일에 확인함.
  16. ↑ “Playstation 3 gets free PhysX from Nvidia”. Kotaku. 2009년 3월 18일.
  17. ↑ Lowe, Scott (2013년 3월 7일). “Nvidia Announces PhysX Support for PlayStation 4”.
  18. ↑ “PhysX – Overview – GeForce”. Nvidia.com. 2009년 4월 29일에 원본 문서에서 보존된 문서. 2011년 11월 30일에 확인함.
  19. ↑ “NVIDIA Announces PhysX Support for Microsoft Xbox One Game Console”. Nvidia.com. 2014년 11월 9일에 원본 문서에서 보존된 문서. 2014년 11월 9일에 확인함.
  20. ↑ “News – Pre-GDC: Nvidia PhysX Approved For Wii Developers”. Gamasutra. 2009년 3월 19일. 2009년 3월 27일에 원본 문서에서 보존된 문서. 2011년 11월 30일에 확인함.
  21. ↑ “Asus 128mb PhysX Card Review/Preview”. 2006년 7월 12일.
  22. ↑ “AGEIA And BFG Technologies Enter Into Retail Distribution Agreement”. 2006년 4월 26일에 원본 문서에서 보존된 문서.
  23. ↑ “BFG Ageia PhysX Card Review”. 2007년 10월 1일.
  24. ↑ “AGEIA PhysX - graphics card - AGEIA PhysX - 128 MB Specs”. CNET.
  25. ↑ “ELSA teams up with Ageia”. 2024년 2월 7일에 원본 문서에서 보존된 문서. 2025년 7월 19일에 확인함.
  26. ↑ “English articles from PC Games Hardware”. 《www.pcgameshardware.com》. 2009년 1월 26일.
  27. 1 2 “PhysX FAQ”. Nvidia.com. 2015년 12월 10일에 확인함.
  28. ↑ Olin Coles. “Mafia-II Video Game Performance Review”. BenchmarkReviews.com. 2010년 8월 23일에 확인함.
  29. ↑ “APEX”. 2013년 12월 11일에 원본 문서에서 보존된 문서. 2011년 6월 8일에 확인함.
  30. ↑ “Category:APEX - PhysX Wiki”. PhysXInfo.com. 2021년 11월 30일에 원본 문서에서 보존된 문서. 2013년 7월 21일에 확인함.
  31. ↑ “APEX 1.4.1 - Release Notes (APEX has been deprecated)”. 《gameworksdocs.nvidia.com》. 2018년 12월 5일에 확인함.
  32. ↑ “NVIDIA FleX” (영어). 《NVIDIA Developer》. 2015년 8월 13일. 2019년 4월 17일에 확인함.
  33. ↑ “PhysX87: Software Deficiency”. 《www.realworldtech.com》.
  34. ↑ Stokes, Jon (2010년 7월 8일). “Did NVIDIA cripple its CPU gaming physics library to spite Intel?”. Arstechnica.com. 2011년 11월 30일에 확인함.
  35. ↑ “Nvidia: We're not hobbling CPU PhysX | thinq_ | Page 1”. Thinq.co.uk. 2011년 11월 28일에 원본 문서에서 보존된 문서. 2011년 11월 30일에 확인함.
  36. ↑ “Instinct Software - Instinct Engine SDK”. Instinctengine.com. February 13, 2015에 원본 문서에서 보존된 문서. October 4, 2013에 확인함.
  37. ↑ Matt Butrovich (2009년 2월 12일). “A look at PhysX in Mirror's Edge”. The Tech Report. 2012년 6월 27일에 원본 문서에서 보존된 문서. 2011년 4월 6일에 확인함.
  38. ↑ Rich Brown (2009년 9월 21일). “Nvidia's PhysX makes PC Batman: Arkham Asylum worth the wait”. cNET.com. 2011년 4월 6일에 확인함.
  39. ↑ Matthew Murray (2010년 9월 2일). “Mafia II: Is Applied PhysX Worth It?”. ExtremeTech. 2010년 12월 30일에 원본 문서에서 보존된 문서. 2011년 4월 6일에 확인함.
  40. ↑ “PhysX - Lumberyard User Guide”. 2020년 9월 22일에 원본 문서에서 보존된 문서. 2020년 4월 15일에 확인함.
  41. ↑ Jim Thacker (2011년 3월 1일). “Videos: Autodesk reveals new features in Maya 2012”. cgchannel.com. 2011년 4월 6일에 확인함.
  42. ↑ “3ds Max 2012 and Maya 2012 adds PhysX support”. Beyond3D.com. 2011년 3월 1일. 2017년 7월 8일에 원본 문서에서 보존된 문서. 2011년 4월 6일에 확인함.
  43. ↑ Randall Hand (2010년 5월 5일). “NVidia PhysX and CUDA in Softimage 2011”. Vizworld.com. 2011년 4월 6일에 확인함.
  44. ↑ “The Game Creators Integrate AGEIA PhysX Technology into DarkBASIC Professional” (보도자료). The Game Creators. 2006년 3월 22일. 2006년 4월 27일에 원본 문서에서 보존된 문서. 2006년 9월 23일에 확인함.
  45. ↑ “Overview”. 《DX Studio》. Worldweaver. 2009년 7월 5일에 원본 문서에서 보존된 문서. 2008년 11월 2일에 확인함.
  46. ↑ “AGEIA Joins Futuremark's 3DMark Benchmark Development Program”. 《FindArticles》 (CBS Interactive). BusinessWire. 2006년 9월 27일. 2009년 2월 14일에 원본 문서에서 보존된 문서. 2008년 11월 3일에 확인함.
  47. ↑ “Simulation Overview”. 《Microsoft Robotics Developer Center》. Microsoft. March 2012.
  48. ↑ Boeing, Adrian. “Engines”. Physics Abstraction Layer. 2024년 2월 6일에 원본 문서에서 보존된 문서. 2007년 11월 18일에 확인함.
  49. ↑ Pierre-Terdiman (2019년 3월 22일), 《GitHub - Pierre-Terdiman/PEEL: Physics Engine Evaluation Lab.》, 2019년 3월 22일에 확인함
  50. ↑ “Unreal Engine 4.26 Preview”. 2020년 9월 24일. 2021년 1월 20일에 원본 문서에서 보존된 문서. 2025년 7월 19일에 확인함.
  51. ↑ “Unity - Manual: Physics”.

외부 링크