물리 엔진에 필요한 조언


12

최근에 물리 엔진을 구축하여 프로젝트를 시작했습니다. 나는 당신이 나에게 이것에 대한 몇 가지 문서 및 / 또는 최고의 기술과 관련된 조언을 줄 수 있기를 바랐다.

우선, Game-Physics-Engine-Development 가 당면한 과제에 강력히 권장되는 것을 보았고 , 당신이 저에게 다른 의견을 줄 수 있는지 궁금합니다. 또한 Amazon을 탐색하는 동안 Game Engine Architecture를 우연히 발견 했으며 게임용 물리 엔진을 구축하고 싶었으므로 이것이 잘 읽힐 것이라고 생각했습니다.

둘째, 물리 시뮬레이션은 계산 집약적이므로 CUDA 또는 OpenCL을 사용하고 싶습니다. 지금 NVIDIA와 ATI 칩셋 모두에서 작동하기 때문에 OpenCL을 기대하고 있습니다.

추신 : Linux의 C ++에서 이것을 구현할 것입니다.

답변:


10

다음은 물리 엔진을 작성하는 방법을 배웠습니다.

  1. David Baraff의 논문 특히 물리 기반 모델링 소개

  2. Rigid Body Systems 의 Brian Vincent Mirtich 논문 임펄스 기반 동적 시뮬레이션

  3. Kacic / Bullock "실제 역학 시스템" SIGRAPH 2003, 편집 : 링크 추가 .

이 논문들은 보석 책 Gems 4 "Verlet-Based Physics Engine 작성" 중 하나 인 Nick Porcino (LucasArts)의 또 다른 위대한 기사에서 언급되었습니다 . 무료는 아니지만 모든 페니의 가치가 있습니다.

다른 엔진도 살펴보십시오. 여기는 Bullet Physics Engine 의 소스입니다 .

CUDA / OpenCL 구현 정보 : CPU에서 먼저 실행되도록하면 복잡합니다. :)

안정적이고 통합 된 물리 엔진을 만들기에는 너무 어렵 기 때문에 잠시 후 엔진을 버릴 것입니다. 경쟁력있는 기능 목록을 제공하지만 훌륭한 학습 경험입니다!

간단한 엔진을 실행하자마자 내 조언은 다음과 같습니다. 테스트 결과를 만들어 엔진의 결과와 다른 엔진의 결과를 비교하십시오. 이를 통해 많은 오류를 발견하고 인터페이스를 개선 할 수있었습니다. 두 엔진의 같은 몸체에서 1 초 동안 비슷한 힘을 가하는 것과 같은 것입니다.

마지막으로, 시작시 충돌을 무시하고 안정적인 시뮬레이션에 먼저 집중하십시오.


훌륭한 답변처럼 보이지만 조금 형식을 지정할 수 있습니다.
공산주의 오리

의견을 보내 주셔서 감사합니다. 저는 경쟁력있는 엔진을 만들 수 없다는 데 동의하지만, 이것의 주요 목표는 학습 부분입니다.
adivasile

1
@ 공산주의 오리는 힌트를 주셔서 감사합니다, 나는 측면을 처음

1
Kacic의 논문에 대한 링크를 추가했습니다. 희망이 맞습니다. :)
Ray Dey

5

Maik이 옳습니다. Baraff의 논문은 훌륭한 출발이지만 강체 역학에 대한 Chris Heckers의 글을 잊지 마십시오 : http://chrishecker.com/Rigid_Body_Dynamics !

"[..] 엔진을 버릴 것"에 대한 그의 충고도 전적으로 사실입니다. 그러나 당신은 많이 배울 것입니다!

질문의 CUDA / OpenCL 부분과 관련하여 : CUDA를 알고 있다면 OpenCL로 전환하는 것이 매우 쉽습니다. CUDA를 먼저 배우는 것이 좋습니다. 좋은 자습서, 예제 코드 및 계산 라이브러리가 너무 많기 때문입니다. 예를 들면 다음과 같습니다.

그러나 CUDA를 시작하는 것은 쉽지만 물리 시뮬레이션을 시작하는 것은 조금 어렵지만 둘을 결합하는 것은 매우 어려운 일입니다!


Chris Hecker의 논문에 대해 +1
Maik Semder

4

나도 Baraff로 시작했지만 지금은 조금 오래되었습니다. 필요한 것은 반복 솔버와 그에 대한 최고의 논문은 Erin Catto 's Iterative Dyanmics 입니다. 물리 엔진을 구현하기 위해 필요한 모든 것을 갖추고 있습니다. 더 자세한 정보 (예 : 관절 및 더 많은 수학 자료)가 필요한 경우 Erleben의 박사 학위 논문을 약간 파헤칠 수 있지만, 그 정도입니다. 나는 처음부터 그것을 찾았 으면 좋겠다-글 머리 기호 포럼을 조금 살펴보면 거기에 많은 정보가 있습니다 (너무 많을 수도 있습니다).

책에 관해서는 많은 책들이 실망 스럽지만 Kenny Erleben 또는 Game Physics Pearls의 Physics Based Animation을 추천합니다.

CUDA / OpenCL에 대해 잘 모르지만 (항상 원했지만) 하라다 타카히로의 작품을 반드시 확인해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.