PhysX

PhysX API 구조 (1)

RuNaPi 2022. 10. 11. 21:14

PhysX를 사용하기 위한 전역 객체 생성을 해주어야한다.

PxFoundation 상위 수준 SDK를 인스턴스화 하기위해 필요
PxPhysics 모든 장면에 영향을 미치는 전역 매개 변수를 설정하고 여러 장면에서 공유할 수 있는 개체를 생성

 

PhysX는 PxScene에 PxActor 객체를 생성하고 각 Actor의 속성(Transform 정보, PhysicsMaterial 등)값을 설정

그러고 elapse time 만큼 시뮬레이션를 시켜준 후 각 Actor의 시뮬레이션 결과(Global Position, Velocity 등)을 사용하게 된다.

PhysX에서는 다음과 같은 Actor들을 지원하고 있다.

PhysX에서 사용되는 객체들의 구조

PxBase Reflection / Querying 객체 Type
PxActor Actor의 이름, 플래그, 식별자 Group, 클라이언트, 집계, 월드 바운스
PxRigidActor 객체의 모양, Transform 정보
PxRigidBody 강체의 속성(질량, 관성, 감쇠, 속도), 플래그 혹은 외부 힘을 설정 
PxRigidStatic 정적 강체(Inf의 질량과 관성을 가지고 있다.)
PxRigidDynamic 동적 강체, Sleep 상태나 운동학적인 제어
PxArticulationLink 동적 강체를 나타내는 관절의 구성 요소, 인접 링크를 쿼리
PxArtuculation 조인트에 의해 연결된 몸체의 트리 구조

 

RigidBody의 파이프라인에 관련된 기본 Type간의 관계도

우선 Scene를 생성하기 위해서는 PxSceneDesc 객체가 필요하다.

PxSceneDesc를 통해 PxScene의 중력, 시뮬레이션후 이벤트 콜백, 필터 데이터, 충돌 필터링에 사용할 쉐이더, 충돌 임계값, 마찰력 작용 임계값,  마찰 유형, 반작용 임계 값 등을 설정 할 수 있다.

더 자세한건 아래 Doc를 통해 확인 할 수 있다.

https://gameworksdocs.nvidia.com/PhysX/4.0/documentation/PhysXAPI/files/classPxSceneDesc.html#details

 

PxSceneDesc Class Reference

Descriptor class for scenes. See PxScene. More... #include Descriptor class for scenes. See PxScene. This struct must be initialized with the same PxTolerancesScale values used to initialize PxPhysics. See alsoPxScene PxPhysics.createScene PxTolerancesScal

gameworksdocs.nvidia.com