Download - Physics for Game Programmers
Physics for Game Programmers
• 원래 GDC Tutorial Day 물리 세션은..
• 하루 종일..
• 수식화된 이론을 보여주며..
• (유럽식) 영어로 뭔가 얘기해 줍니다.
• 그래서 오늘은..
• 기술, 솔루션, 연구자 등의 동향 파악과..
• 가성비 좋은 공부 방법을 설명하는 데에 집중하겠습니다.
범용 물리엔진을 직접 만들어 쓸 필요는 없지만..
• 만들어 보면 좋다.
• 시뮬레이션 개발은 무지 재밌다!
• 만들어 본 사람이 사용도 잘한다.
• 각각의 모든 오브젝트들이 상호작용하는 시스템을 만들어 보는 것은 프로그래머에게 좋은 공부가 된다.
• 하드웨어, OS, 컴파일러에 대한 이해가 깊어진다.
• 게다가 요즘은 만들기도 쉽다!
• 쉬운 알고리즘이 나타났다.
• 페이퍼, 슬라이드, 책 등 쉬운 문서가 많다.
• 이해하기 쉽고, 완전히 공개된 고품질의 소스코드도 많다.
그래도 어렵다..
• Fusion = 국영수 + 물리 (프로그래밍 + 영어 + 수학 + 물리)
• 뭘 봐야 하지?
• 무슨 문서?
• 무슨 알고리즘?
• 무슨 소스코드?
• 봐도 모르겠네!
• 용어, 기호, 이론, 코드
물리엔진 용도
• Rigid Body
• Ragdoll
• Cloth
• (GPU-Accelerated Physics)
• (Networked Physics)
• Destruction
• Soft Body
• Fluid
• Physics + Animation + AI(Behavior)
2D
• Box2D (오픈소스)
크레용 피직스
앵그리 버드
3D
• Bullet (오픈소스)
• Havok
스타크래프트 II
디아블로 III
• PhysX
언리얼
앨리샤
• CryENGINE (인하우스 물리 엔진 포함)
Physics + Animation + AI(Behavior)
• NaturalMotion
• Morpheme
• Animation blending
• Euphoria - unique game moments
• AI + Biomechanics + Physics Motion generation
• 동영상 : http://www.youtube.com/watch?v=HauN98naZ9U&feature=player_embedded
• Endorphin - dynamic motion synthesis
• Endorphin is animation tool for creating virtual stuntmen for movies and films.
• Using Adaptive Behaviors instead of canned animations, Endorphin’s 3D characters essentially animate themselves.
• Havok
• Havok Physics
• Havok Animation
• Havok Behavior
0.01초 사이에 일어나는 일
1. 제약(Constraint) 조건 알아내기 혹은 만들기
• 충돌 검출
• 온갖 알고리즘 GJK
• (각종 Joint 생성)
2. 제약 조건 일반화
3. 물리 해석
• Global Solver Iterative Solver
4. 적분(Integration)
• 물체들을 최종 위치로 이동
알고리즘 발전 방향
• Iterative!
• Iterative 충돌 검출
• 일반화된 하나의 알고리즘으로 모든 Convex 처리
• Iterative 물리 해석
• 거대 연립 부등식 계산은 이제 그만~
• Trade Off : 속도 vs 정확도
• Coherence 활용
• GPU를 활용한 병렬 처리
공부 자료
David Baraff
개척자. LCP 접목
Erin Catto
Box2D
Box2D Lite
Distance2D
Gino van den Bergen
SOLID
Pierre Terdiman
OPCODE
PhysX
엑기스 문서
• David Baraff
• “Fast Contact Force Computation for Nonpenetrating Rigid Bodies”
• Erin Catto
• “Iterative Dynamics with Temporal Coherence”
• 각종 GDC 발표 자료
• Gino van den Bergen
• 각종 GDC 발표 자료 GJK
Iterative Solver
Iterative Solver
GJK
LCP
주옥같은 코드
• Erin Catto
• Box2D
• Box2D Lite
• Distance2D
• Gino van den Bergen
• SOLID
• (모르는 사람들)
• Bullet
• GAMMA (Geometric Algorithms for Modeling, Motion, and Animation)
• 여러 가지 연구 결과물들
• http://gamma.cs.unc.edu/research/collision/
GJK
Iterative Solver
Iterative Solver
GJK
GJK
Iterative Solver GJK
볼만한 책들
수학
Essential
Mathematics for
Games &
Interactive
Applications
충돌 검출
Real-Time
Collision Detection
충돌 검출
Collision Detection
in Interactive 3D
Environments
게임 물리
Game Physics
Pearls
게임 물리
Game Physics
계산 동력학 (로보틱스)
Computational
Dynamics
(진열용)
자료 훑어보기
• 충돌 검출 알고리즘 Overview : “CollisionDetection_oox_v0p2.pdf”
• GJK 알고리즘
• 문서
• 데모 : Distance2D
• 물리 시뮬레이션
• 문서
• 데모 : Box2D
Q & A
2012-03-30 [email protected]