물리 시뮬레이션에 대한 정보를 읽고 가능한 해결책을 찾았습니다. 각 물리 단계를 3 단계로 나눠서 작동합니다.
1. 사전 단계 :
각 물리 단계, 창은 연결의 각 측면에 대해 두 개의 변환을 만듭니다.
- 객체의 위치, 속도 (및 크기 및 무게)를 대상 좌표계로 변환하는 입력 변환
- 출력을 객체의 원래 시스템으로 다시 변환하는 출력 변환
(정적 창은이 작업을 한 번만 수행하면됩니다.)
또한 각 좌표계의 객체는 세 그룹으로 나뉩니다.
물리 그룹화 http://content.wuala.com/contents/Tamschi/Stack%20Exchange/WindowGrouping.png
창 앞의 개체 (녹색).
객체가 창 평면과 교차하거나 창 뒤에서 교차 할 가능성이있는 경우이 그룹으로 계산됩니다 (표시되지 않음).
이 물리 단계 (오렌지)에서 창을 교차 시키거나 교차 할 가능성이있는 물체.
창 뒤의 개체 (파란색). 개체가 창의 뒷면으로 날아가도 여전히 그룹 3의 구성원으로 표시됩니다.
창이 시뮬레이션 경계에 있으면 그룹화를 단순화 할 수 있습니다.
2. 주요 단계 :
물리학은 몇 가지 예외를 제외하고 대부분 평소와 같이 계산됩니다.
(계산 중에 객체가 히트되면 다시 그룹화해야합니다!)
3. 사후 단계 :
두 번째 그룹의 개체가 창을 통과 한 경우 입력 변환을 사용하여 대상 시스템으로 이동합니다.
추가 생각 :
물리 계산 후 변환이 유지되면 렌더링 속도를 높이고 AI 계산을보다 쉽게 수행 할 수 있습니다. 그룹화를 사용하여 렌더링 프로세스에서 클립 평면을 제거 할 수 있습니다.
이 솔루션의 단점은 물리 엔진에 창을 직접 추가해야한다는 것입니다.