physics for game programmers

23
Physics for Game Programmers

Upload: ung-su-lee

Post on 18-Dec-2014

568 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Physics for Game Programmers

Physics for Game Programmers

Page 2: Physics for Game Programmers
Page 3: Physics for Game Programmers

• 원래 GDC Tutorial Day 물리 세션은..

• 하루 종일..

• 수식화된 이론을 보여주며..

• (유럽식) 영어로 뭔가 얘기해 줍니다.

• 그래서 오늘은..

• 기술, 솔루션, 연구자 등의 동향 파악과..

• 가성비 좋은 공부 방법을 설명하는 데에 집중하겠습니다.

Page 4: Physics for Game Programmers

범용 물리엔진을 직접 만들어 쓸 필요는 없지만..

• 만들어 보면 좋다.

• 시뮬레이션 개발은 무지 재밌다!

• 만들어 본 사람이 사용도 잘한다.

• 각각의 모든 오브젝트들이 상호작용하는 시스템을 만들어 보는 것은 프로그래머에게 좋은 공부가 된다.

• 하드웨어, OS, 컴파일러에 대한 이해가 깊어진다.

• 게다가 요즘은 만들기도 쉽다!

• 쉬운 알고리즘이 나타났다.

• 페이퍼, 슬라이드, 책 등 쉬운 문서가 많다.

• 이해하기 쉽고, 완전히 공개된 고품질의 소스코드도 많다.

Page 5: Physics for Game Programmers

그래도 어렵다..

• Fusion = 국영수 + 물리 (프로그래밍 + 영어 + 수학 + 물리)

• 뭘 봐야 하지?

• 무슨 문서?

• 무슨 알고리즘?

• 무슨 소스코드?

• 봐도 모르겠네!

• 용어, 기호, 이론, 코드

Page 6: Physics for Game Programmers

물리엔진 용도

• Rigid Body

• Ragdoll

• Cloth

• (GPU-Accelerated Physics)

• (Networked Physics)

• Destruction

• Soft Body

• Fluid

• Physics + Animation + AI(Behavior)

Page 7: Physics for Game Programmers

2D

• Box2D (오픈소스)

크레용 피직스

앵그리 버드

3D

• Bullet (오픈소스)

• Havok

스타크래프트 II

디아블로 III

• PhysX

언리얼

앨리샤

• CryENGINE (인하우스 물리 엔진 포함)

Page 8: Physics for Game Programmers

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

Page 9: Physics for Game Programmers

0.01초 사이에 일어나는 일

1. 제약(Constraint) 조건 알아내기 혹은 만들기

• 충돌 검출

• 온갖 알고리즘 GJK

• (각종 Joint 생성)

2. 제약 조건 일반화

3. 물리 해석

• Global Solver Iterative Solver

4. 적분(Integration)

• 물체들을 최종 위치로 이동

Page 10: Physics for Game Programmers

알고리즘 발전 방향

• Iterative!

• Iterative 충돌 검출

• 일반화된 하나의 알고리즘으로 모든 Convex 처리

• Iterative 물리 해석

• 거대 연립 부등식 계산은 이제 그만~

• Trade Off : 속도 vs 정확도

• Coherence 활용

• GPU를 활용한 병렬 처리

Page 11: Physics for Game Programmers

공부 자료

Page 12: Physics for Game Programmers

David Baraff

개척자. LCP 접목

Erin Catto

Box2D

Box2D Lite

Distance2D

Gino van den Bergen

SOLID

Pierre Terdiman

OPCODE

PhysX

Page 13: Physics for Game Programmers

엑기스 문서

• 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

Page 14: Physics for Game Programmers

주옥같은 코드

• 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

Page 15: Physics for Game Programmers

볼만한 책들

Page 16: Physics for Game Programmers

수학

Essential

Mathematics for

Games &

Interactive

Applications

Page 17: Physics for Game Programmers

충돌 검출

Real-Time

Collision Detection

Page 18: Physics for Game Programmers

충돌 검출

Collision Detection

in Interactive 3D

Environments

Page 19: Physics for Game Programmers

게임 물리

Game Physics

Pearls

Page 20: Physics for Game Programmers

게임 물리

Game Physics

Page 21: Physics for Game Programmers

계산 동력학 (로보틱스)

Computational

Dynamics

(진열용)

Page 22: Physics for Game Programmers

자료 훑어보기

• 충돌 검출 알고리즘 Overview : “CollisionDetection_oox_v0p2.pdf”

• GJK 알고리즘

• 문서

• 데모 : Distance2D

• 물리 시뮬레이션

• 문서

• 데모 : Box2D

Page 23: Physics for Game Programmers

Q & A

2012-03-30 [email protected]