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들을 지원하고 있다.

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

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

PxSceneDesc를 통해 PxScene의 중력, 시뮬레이션후 이벤트 콜백, 필터 데이터, 충돌 필터링에 사용할 쉐이더, 충돌 임계값, 마찰력 작용 임계값, 마찰 유형, 반작용 임계 값 등을 설정 할 수 있다.
더 자세한건 아래 Doc를 통해 확인 할 수 있다.
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