PhysX 지오메트리는 강체의 모양을 만드는 데 사용되며, 충돌 트리거로 사용된다.
PhysX는 지오메트리 간 교차점 검사, 레이캐스팅, 한 지오메트리를 다른 지오메트리와 충돌 검사하는 함수도 제공한다
(이 함수는 독립적으로 실행된다고 함)
지오메트리는 공통 기본 클래스인 PxGeometry에서 상속된다.
각 지오메트리 클래스는 고정된 위치, 방향을 가진 볼륨, 표면을 정의한다
지오메트리는 두 가지 클래스로 나뉨
1. 기본 도형 - 지오메트리 객체가 모든 데이터를 포함한다
- PxBoxGeometry
- PxSphereGeometry
- PxCapsuleGeometry
- PxPlaneGeometry
2. 메시 또는 높이 필드 - 지오메트리 객체가 훨씬 큰 객체를 가리키는 포인터를 포함한다
- PxConvexMeshGeometry (PxConvexMesh를 가리키는 포인터)
- PxTriangleMeshGeometry (PxTriangleMesh를 가리키는 포인터)
- PxHeightFieldGeometry (PxHeightMesh를 가리키는 포인터)
- 이는 각 유형에서 참조하는 객체를 서로 다른 스케일로 사용할 수 있다
* 지오매트리 클래스가 시뮬레이션에 사용되기 위해 SDK로 전달될 때, 지오메트리는 PxShape 클래스로 복사된다.
지오메트리 타입
1. 구 (Sphere)
- 구는 원점을 중심으로 반지름 속성을 가진다
2. 캡슐 (Capsule)
- 캡슐은 원점을 중심으로 X축으로 확장되는 반높이, 반지름 값으로 이루어져 있다.
PxRigidDynamic * aCapsuleActor = thePhysics -> createRigidDynamic ( PxTransform ( 위치 ));
PxTransform relativePose ( PxQuat ( PxHalfPi , PxVec ( 0 , 0 , 1 )));
PxShape * aCapsuleShape = PxRigidActorExt :: createExclusiveShape ( * aCapsuleActor ,
PxCapsuleGeometry ( radius , halfHeight ), aMaterial );
aCapsuleShape -> setLocalPose ( relativePose );
PxRigidBodyExt :: updateMassAndInertia ( * aCapsuleActor , capsuleDensity );
aScene -> addActor ( aCapsuleActor );
3. 박스 (Box)
- 박스는 3가지 속성이 있으며, 이 3가지 속성은 만들고자하는 박스의 X, Y, Z 값을 반으로 줄인 것
4. 평면 (Plane)
- 평면은 위, 아래 공간으로 나뉘며, 평면 아래의 모든 것이 평면과 충돌한다.
- PxPlaneGeometry는 정적 액터에 대해서만 생성할 수 있다.
'PhysX > [NVIDIA] PhysX_Tutorial' 카테고리의 다른 글
6. PhysX - RigidBody 충돌 - 2 (0) | 2023.03.03 |
---|---|
5. PhysX - RigidBody 충돌 - 1 (0) | 2023.03.03 |
4. PhysX - RigidBody 개요 (0) | 2023.03.03 |
2. PhysX API (0) | 2023.03.02 |
1. PhysX 초기화 (0) | 2023.02.25 |
댓글