2.4 충돌 형상 설계

충돌 처리 파이프라인

그림 2-3. visual mesh와 collision proxy를 분리하고 broad phase, narrow phase, solver를 거쳐 상태를 갱신하는 흐름.

2.4.1 visual mesh와 collision mesh

visual mesh는 픽셀 품질을 위해 세밀한 곡면과 작은 부품을 포함한다. collision mesh는 접촉 계산을 위해 단순하고 닫힌 형상을 선호한다. visual mesh를 그대로 충돌에 사용하면 triangle 수뿐 아니라 접촉점과 friction patch 수가 증가해 solver 비용과 jitter가 커질 수 있다.

2.4.2 collision approximation 선택

근사장점단점권장 대상
Box/Sphere/Capsule매우 빠르고 안정적형상 오차가 큼작업대, 손잡이, 단순 물체
Convex hull안정적이고 동적 물체에 적합오목한 홈을 메움블록, 병, 단순 공구
Convex decomposition오목한 형상을 여러 convex part로 근사cooking 시간과 part 수 비용그리퍼, 트레이, 복잡한 동적 소품
Triangle mesh원형상에 가까움접촉 비용과 안정성 부담주로 정적 환경

PhysX geometry의 종류와 cooking 요구사항은 PhysX Geometry에 정리되어 있다. 동적 강체는 가능한 한 primitive 또는 convex 계열을 사용하고, 정적 환경에만 triangle mesh를 제한적으로 사용한다.

2.4.3 convex decomposition 튜닝

V-HACD 계열 분해는 오목한 메시를 여러 convex hull로 바꾼다. hull 수를 늘리면 원형상에 가까워지지만 항상 좋은 것은 아니다. 다음 지표를 함께 본다.

  • 파지에 중요한 홈이나 테두리가 보존되는가?
  • hull 수와 hull당 vertex 수가 예산 이내인가?
  • 접촉 시 jitter가 줄었는가?
  • 한 physics step의 평균/상위 99% 시간이 허용 범위인가?

중요한 접촉면은 별도 primitive collider로 직접 모델링하는 편이 자동 분해보다 예측 가능하다. 예를 들어 그리퍼 고무 패드는 얇은 box collider, 손가락 본체는 capsule/box 조합으로 만든다.

2.4.4 broad phase와 narrow phase

충돌 검사는 보통 두 단계로 생각할 수 있다.

  1. Broad phase: AABB 등 싼 표현으로 충돌 가능성이 있는 pair를 찾는다.
  2. Narrow phase: 실제 geometry를 사용해 접촉점, 법선, penetration을 계산한다.

scene에 collider가 많으면 broad phase pair 수가 증가한다. 로봇 링크끼리 절대 접촉할 필요가 없는 조합은 collision filtering으로 제외한다. 하지만 실제 self-collision 가능성이 있는 pair까지 제거하면 안전성이 과대평가된다.

이 장의 예제 코드·설정 파일 (4)

이 장의 자가 점검·가상실습