동적 시뮬레이션
Dynamical simulation동적 시뮬레이션은 컴퓨터 물리학에서 뉴턴의 역학 법칙에 따라 대개 3차원으로 이동이 자유로운 물체의 시스템을 시뮬레이션하는 것이다.역동적 시뮬레이션은 애니메이터가 현실적인 움직임을 만들도록 돕는 컴퓨터 애니메이션, 산업 디자인(예를 들어 충돌 테스트의 초기 단계로 충돌을 시뮬레이션하는 것) 및 비디오 게임에서 사용된다.신체 이동은 시간 통합 방법을 사용하여 계산한다.
물리 엔진
컴퓨터 과학에서, 물리 엔진이라고 불리는 프로그램은 우주에 있는 물체의 행동을 모형화하는 데 사용된다.이러한 엔진은 다양한 물리적 자극에 의해 많은 유형의 신체가 영향을 받는 방식을 시뮬레이션할 수 있다.그것들은 또한 물리학에 대해 아무것도 알 필요 없이 역동적인 시뮬레이션을 만드는 데 사용된다.물리 엔진은 비디오 게임과 영화 산업 전반에 걸쳐 사용되지만, 모든 물리 엔진들이 같은 것은 아니다.일반적으로 실시간과 높은 정밀도로 세분되지만, 이것들만이 유일한 선택은 아니다.대부분의 실시간 물리학 엔진은 부정확하고 현실 세계의 가장 근사치만 산출하는 반면, 대부분의 고정밀 엔진은 일상 용도에 사용하기에는 너무 느리다.
이러한 물리학 엔진이 어떻게 만들어지는가를 이해하기 위해서는 물리학에 대한 기본적인 이해가 필요하다.물리학 엔진은 고전역학에서 설명한 세계의 실제 행동에 기초한다.대부분의 시각화는 비교적 느리게 움직이는 큰 몸을 다루기 때문에 엔진은 일반적으로 모던 메카닉스를 설명하지 않는다(상대성이론과 양자역학 참조). 그러나 가장 복잡한 엔진은 클래식뿐만 아니라 모던 메카닉스에 대한 계산을 수행한다.동적 시뮬레이션에 사용된 모델은 이러한 시뮬레이션이 얼마나 정확한지 결정한다.
입자 모형
물리학 엔진에 사용될 수 있는 첫 번째 모델은 "입자"라고 불리는 유한 질량을 가진 극소수의 물체의 움직임을 지배한다.뉴턴의 제2법칙(뉴턴의 법칙 참조) 또는 힘의 정의라고 불리는 이 방정식은 모든 운동을 지배하는 근본적인 행동이다.
이 방정식은 입자의 동작을 완전히 모델링할 수 있게 해주겠지만, 강체 신체의 회전 운동을 설명하지 않기 때문에 대부분의 시뮬레이션에는 충분하지 않다.이것은 물리학 엔진에서 사용될 수 있고 초기 비디오 게임에서 광범위하게 사용되었던 가장 단순한 모델이다.
관성모형
실제 세계의 신체는 힘이 가해지면서 변형이 일어나기 때문에 우리는 그들을 "부드럽다"고 부르지만, 종종 그 변형이 운동에 비해 무시할 수 없을 정도로 작고, 모델을 만드는 것이 매우 복잡하기 때문에 대부분의 물리 엔진은 변형을 무시한다.변형이 불가능한 것으로 추정되는 몸을 강성체라고 한다.강체 신체 역학은 형태, 크기 또는 질량을 변경할 수 없지만 방향과 위치를 변경할 수 있는 물체의 움직임을 다룬다.
회전 에너지와 모멘텀을 설명하려면, 우리는 모멘트를 사용하여 물체에 힘이 가해지는 방법을 설명해야 하며, 관성 텐서를 사용하여 물체의 질량 분포를 설명해야 한다.위의 힘의 정의와 다소 유사한 방정식을 가진 복잡한 상호작용에 대해 설명한다.
여기서 은 (는) 중심 관성 텐서, → 은 각속도 벡터, {\는 질량 중심부에 대한 j번째 외부 힘의 순간이다.
관성 텐서는 물체의 질량 중심과 관련하여 주어진 물체 내 각 질량 입자의 위치를 설명한다.이것은 물체가 물체에 가해지는 힘에 따라 어떻게 회전하는지를 결정할 수 있게 해준다.이 각운동은 각속도 벡터로 정량화된다.
우리가 상대론적 속도 이하에 머무르는 한(상대론적 역학 참조), 이 모델은 관련된 모든 행동을 정확하게 시뮬레이션할 것이다.이 방법은 물리학 엔진이 우리가 렌더링하고 싶은 순간마다 6개의 평범한 미분 방정식을 풀도록 요구하는데, 이것은 현대 컴퓨터의 간단한 작업이다.
오일러 모형
관성 모델은 우리가 일반적으로 필요로 하는 것보다 훨씬 더 복잡하지만 그것은 가장 사용하기 간단하다.이 모델에서, 우리는 우리의 힘을 바꾸거나 우리의 시스템을 구속할 필요가 없다.그러나, 만약 우리가 우리의 시스템에 몇 가지 지능적인 변경을 한다면, 시뮬레이션은 훨씬 쉬워질 것이고, 우리의 계산 시간은 줄어들 것이다.첫 번째 구속조건은 각 토크를 주요 축에 따라 넣는 것이다.이것은 각각의 토크를 프로그래밍하는 것을 훨씬 더 어렵게 만들지만, 그것은 우리의 방정식을 상당히 단순화시킨다.이 제약을 적용하면 관성 텐서의 모멘트를 대각선으로 만들어 우리 세 방정식을 오일러의 방정식이라는 특수한 방정식으로 단순화시킨다.이 방정식은 모든 회전 운동량을 주 축의 관점에서 설명한다.
- N 항은 주 축에 대해 토크를 적용한다.
- I항은 관성의 주요 순간이다.
- 항은 주 축에 대한 각도 속도임
이 모델의 단점은 모든 연산이 프런트 엔드에 있기 때문에 여전히 우리가 원하는 것보다 느리다는 것이다.여전히 비선형 미분방정식의 시스템에 의존하고 있기 때문에 진정한 유용성은 명백하지 않다.이 문제를 완화하기 위해서는 두 번째 항을 방정식에서 제거할 수 있는 방법을 찾아야 한다.이것은 우리가 훨씬 더 쉽게 통합할 수 있게 해줄 것이다.가장 쉬운 방법은 어느 정도의 대칭을 가정하는 것이다.
대칭/토크 모형
오일러의 방정식을 단순화할 대칭 객체의 두 종류는 '대칭 상단'과 '대칭 구'이다.첫째는 대칭의 1도를 가정하고, 이것은 I항 중 2개를 동등하게 만든다.원통이나 상단과 같은 이 물체들은 아주 간단한 하나의 방정식과 약간 더 간단한 두 개의 방정식으로 표현될 수 있다.이것은 우리에게 별로 도움이 되지 않는다. 왜냐하면 대칭이 하나 더 있으면 우리는 외관상 거의 변화가 없이 속도에서 큰 점프를 할 수 있기 때문이다.대칭 구역을 사용하면 I 항이 모두 동일(관성 스칼라의 모멘트)하여 다음과 같은 모든 방정식이 단순해진다.
- N 항은 주 축에 대해 토크를 적용한다.
- 항은 주 축에 대한 각도 속도임
- I항은 스칼라 관성의 모멘트:
- 어디에
- V는 개체의 볼륨 영역이며
- r은 회전 축으로부터의 거리,
- m은 질량,
- v는 볼륨,
- ρ은 객체의 점근밀도함수,
- x, y, z는 데카르트 좌표다.
이러한 방정식은 우리가 회전하지 않고 움직임을 시뮬레이션하는 방법에 매우 가까운 방법으로 회전할 수 있는 물체의 동작을 시뮬레이션할 수 있게 해준다.이것은 단순한 모델이지만 실시간 다이너믹 시뮬레이션에서 현실적인 출력을 낼 수 있을 만큼 정확하다.그것은 또한 물리학 엔진이 변화하는 관성보다는 변화하는 힘과 토크를 집중시킬 수 있게 한다.