물리 엔진과 관련된 충격과 힘의 차이점은 무엇입니까?


25

물리 엔진과 관련하여 임펄스 적용과 힘 적용의 차이점은 무엇입니까?

답변:


25

임펄스는 즉시 적용되므로 시간 단계에 의존하지 않습니다. 무언가에 고정 된 속도의 부스트를 주거나 물리적 행동이 너무 빨리 일어날 때 (예 : 총알 / 총 리 코팅, 충돌, 점프, 즉각적인 속도 향상) 임펄스를 사용합니다.

한편 힘은 시간 단계에 비례하여 속도를 변경합니다. 시간이 지남에 영향을 미치는 것들 (예 : 중력, 긴 스프링, 공기 저항)에 사용합니다.

수학적으로 impulse = force * time; 그리고 참고 impulse = mass * velocity_changeforce = mass * acceleration.

첫 번째를 확장하면 다음을 확인할 수 있습니다.

  • impulse = force * time ->
  • impulse = mass * acceleration * time그리고 이후로 acceleration * time = velocity_change->
  • impulse = mass * velocity_change.

1
이후로 impulse = force * time, 임펄스도 시간에 의존합니다 (적어도 임펄스의 크기를 얻기 위해 힘을 사용하는 경우). 실제로 운동량이나 충동은 순간적인 극적인 변화를 적용하는 데 유용합니다. 가장 보편적 인 예는 운동량과 에너지 보존 법칙에서 나온 것입니다 : physics.ohio-state.edu/~gan/teaching/spring99/C10.pdf .
teodron

잘못된 구현을 Jeff Lake통한 구현도 마찬가지입니다 Game Coding Complete 3rd Ed. Chapter 15: Collision and Simple Physics. (Paraphrasing)Start with a Vector3d (or 2d depending) of forces F, Accumulate all Forces applied in a list, Accumulate All Impulses in a list add both totals to Forces, empty Impulses list, Accel = F / mass, Vel += Accel * deltaTime, Pos = Vel * time.
Casey

@Casey : 그렇게하는 방법입니다. 내 시뮬레이터에서는 두 몸체가 충돌하고 모든 것이 직접 작동하는 강체 케이스를 사용할 수 없습니다. 뉴턴의 가속도를 통합하여 속도와 위치를 찾습니다. 내 충동은 반발력에서 나옵니다 (응답 / 반응력은 이해의 동의어입니다) i = F_response * DTime. i충돌 후 속도를 수정 하기 위해 임펄스를 사용하거나 반응력을 직접 사용하십시오. 다른 곳에서 충동을 얻는다면 그것을 다른 것으로 변환 할 수 있으며 정상적으로 F_response작동합니다.
teodron

@teodron 감사합니다. 따라서 별도로 질문 할 별도의 질문이 나타납니다. : P
케이시
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.