PSE Game Physics - Summer 11: Difference between revisions

From Sccswiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(45 intermediate revisions by 3 users not shown)
Line 2: Line 2:
| term = SS 11
| term = SS 11
| lecturer = [[Univ.-Prof. Dr. Hans-Joachim Bungartz]], <br>[[Martin Schreiber]],<br>[[Atanas Atanasov]],<br>[[Philipp Neumann]]
| lecturer = [[Univ.-Prof. Dr. Hans-Joachim Bungartz]], <br>[[Martin Schreiber]],<br>[[Atanas Atanasov]],<br>[[Philipp Neumann]]
| timeplace = t.b.a.
| timeplace = Friday, 1 pm, 02.07.023
| credits = 6 SWS (6P) / 10 Credits
| credits = 6 SWS (6P) / 10 Credits
| audience = Studenten der Informatik (Bachelor)
| audience = Studenten der Informatik (Bachelor)
Line 9: Line 9:
}}
}}


= PRELIMINARY WEBSITE =
Course is held in German, the slides are in English.


Course is held in German, the slides are in English.
= Timeline =
* '''preliminary session: 10.02.2011, 10:00, room: 02.07.023'''


= Contents =
= Contents =
A game physics engine is developed in this lab.
A simple game physics engine is developed in this lab.
Starting with simple time steps for moving rigid body objects you will successively extend your developments by collision detection, rotations, friction, etc. to obtain a game physics engine.
Starting with simple time steps for moving rigid body objects you will successively extend your developments by collision detection, rotations, friction, etc. to obtain a game physics engine.


Line 21: Line 22:
* Game-Physics (Force, momentum, torque, ...)
* Game-Physics (Force, momentum, torque, ...)
* Game-Math (Numerical approximations, accuracy, time-steps, ...)
* Game-Math (Numerical approximations, accuracy, time-steps, ...)
* Modeling of springs, Rods, Ropes
* Modelling of springs, Ropes
* Collision detection
* Collision detection
* Resolving of interpenetrations
* Resolving of interpenetrations
* Friction
* Friction
* Interaction
* ...
* ...


= Prerequisites =
= Prerequisites =
* Preliminary knowledge in C++ is advantageous, but it's no prerequisite.  
* Preliminary knowledge in C++ is advantageous, but it's no prerequisite. However, you should have experiences in object-oriented programming - e.g. Java programming.
* However, you should have experiences in object-oriented programming - e.g. Java programming.
* No prior knowledge about visualization is necessary: A framework for visualization, interactivity and the interface for the physics is given. Thus you'll only have to implement the physics part.
* No prior knowledge about visualization is necessary.
* Also no prior knowledge about physics is necessary. We'll give a short introduction to physics.
 
 
= Timetable =
 
The class takes place every Friday at 1 pm in room 02.07.023.
This timetable is only preliminary!
<font color="red">NEXT SESSION WILL TAKE PLACE ON THURSDAY, JUNE 9, at 16:00! </font>
 
{|class=wikitable
|-
! '''Number''' !! '''Topic''' !! '''Worksheet''' !! '''Presentation Slides''' !! '''Date'''
|-
| 1 || Warmup: Explicit Euler, Physics I, Falling Sphere || [http://www5.in.tum.de/lehre/praktika/gamephysicsengine/ss11/worksheet1.pdf Worksheet 1]  || [http://www5.in.tum.de/lehre/praktika/gamephysicsengine/ss11/1_introduction.pdf Presentation]  || 6.5.
|-
| 2 || Convergence, Stability, Analytical solutions, Collisions I, Resolving interpenetrations ||[http://www5.in.tum.de/lehre/praktika/gamephysicsengine/ss11/worksheet2.pdf Worksheet 2]||[http://www5.in.tum.de/lehre/praktika/gamephysicsengine/ss11/2_collisions_and_interpenetrations_updated.pdf Presentation] (Update: collision points)|| 13.5.
|-
| 3 || Springs/Ropes, Linear momentum, Quaternions || [http://www5.in.tum.de/lehre/praktika/gamephysicsengine/ss11/worksheet3.pdf Worksheet 3] (updated, 26. May) || [http://www5.in.tum.de/lehre/praktika/gamephysicsengine/ss11/3_springs_ropes_and_linear_momentum_and_quaternions.pdf Presentation] || 20.5.
|-
| 4 || Collisions: Sphere-box, plane-box || [http://www5.in.tum.de/lehre/praktika/gamephysicsengine/ss11/worksheet4.pdf Worksheet 4] || [http://www5.in.tum.de/lehre/praktika/gamephysicsengine/ss11/4_collision_sphere_box_plane_box.pdf Presentation] || 27.5.
|-
| 5 || Collisions: Box-box, separating axes || [http://www5.in.tum.de/lehre/praktika/gamephysicsengine/ss11/worksheet5.pdf Worksheet 5] || [http://www5.in.tum.de/lehre/praktika/gamephysicsengine/ss11/5_collision_box_box.pdf Presentation] (updated, 21. Juni: Intersection points, 11. Aug.: Vertex-Face Collision Point) || 27.5.
|-
| 6 || Angular momentum, micro-collisions, damping || [http://www5.in.tum.de/lehre/praktika/gamephysicsengine/ss11/worksheet6.pdf Worksheet 6] || [http://www5.in.tum.de/lehre/praktika/gamephysicsengine/ss11/6_angular_momentum_and_microcollisions_and_damping.pdf Presentation] (updated, 21. Juni: `t`) || 9.6., 16:00
|-
| 7 || Friction || [http://www5.in.tum.de/lehre/praktika/gamephysicsengine/ss11/worksheet7.pdf Worksheet 7]|| [http://www5.in.tum.de/lehre/praktika/gamephysicsengine/ss11/7_friction.pdf Presentation] (updated, 14. Juli: planar velocity) || 17.6.
|-
| - || - || ||  || 24.6.
|-
| - || Question session / Project proposal || || || 1.7.
|-
| 8 || Project || || || 8.7.
|-
| 9 || Project || || || 15.7.
|-
| - || - || || || 22.7.
|-
| 10 || Project Presentation || || || 29.7.
|}
 
= <font color="red">Frequently Asked Questions (FAQs)</font> =
 
If you have a question, first take a look at our FAQ Website: [[PSE Game Physics - Summer 11 - FAQs]]
 


= Material =


= Preview =
The Engine Skeleton is available for download:
* Hanging Bridge simulated with ropes: http://www5.in.tum.de/pic/lehre/pse_game_physics/screenshot_bridge.png
* [http://www5.in.tum.de/lehre/praktika/gamephysicsengine/ss11/sbndengine_lab_2011_05_08.tar.bz2 SBNDEngine_2011_05_08]
* Falling objects (Cubes, Spheres): http://www5.in.tum.de/pic/lehre/pse_game_physics/screenshot_falling_objects.png
* [http://www5.in.tum.de/lehre/praktika/gamephysicsengine/ss11/sbndengine_lab_2011_05_06.tar.bz2 SBNDEngine_2011_05_06]
 
When compiling SBNDEngine, don't forget to install freeglut3-dev
 
 
* Explicit Euler in OpenCalc spreadsheet: [http://www5.in.tum.de/lehre/praktika/gamephysicsengine/ss11/explicit_euler_free_fall.ods Spreadsheet: explicit Euler]


= Timetable =
t.b.a.


= Worksheets, Material, and Lecture Notes =
t.b.a.


= Recommended Literature =
= Recommended Literature =
Line 48: Line 93:
* Real-Time Collision Detection, Christer Ericson
* Real-Time Collision Detection, Christer Ericson
* Game Physics, David E. Eberly
* Game Physics, David E. Eberly
= SBND Engine =
The following keysettings are preset by our engine.
The keys which are for debugging should be the most important for you to hunt bugs ;-)
* Default mode:
{|class=wikitable
|-
! '''Key''' !! '''Function'''
|-
| [a] || Go left
|-
| [s] || Go back
|-
| [w] || Go forward
|-
| [d] || Go right
|-
| [g/G] || activate/deactivate gravity
|-
| [space] || Switch between '1st person mode' and 'free mouse mode'
|-
| [1]-[0], [F1]-[F12] || Switch to other scene and reset
|-
| [r] || Total reset
|-
| [e] || Reset objects only
|-
|}
* Debug mode:
You can use this mode to get some information about objects.
An output is created for object which is currently under the mouse cursor.
{|class=wikitable
|-
! '''Key''' !! '''Function'''
|-
| [backspace] || Activate/Deactivate Debug mode
|-
| [mouse wheel up],[+] || Go one timestep forward + record current state
|-
| [mouse wheel down],[-] || Go one timestep back (restore recorded state)
|-
|}
= Preview =
* Hanging Bridge simulated with ropes:
http://www5.in.tum.de/pic/lehre/pse_game_physics/screenshot_bridge.png
* Falling objects (Cubes, Spheres):
http://www5.in.tum.de/pic/lehre/pse_game_physics/screenshot_falling_objects.png
* Many balls:
http://www5.in.tum.de/pic/lehre/pse_game_physics/screenshot_balls.png
= Registration =
tum online: [https://campus.tum.de/tumonline/lv.detail?clvnr=950011019]

Latest revision as of 11:55, 11 August 2011

Term
SS 11
Lecturer
Univ.-Prof. Dr. Hans-Joachim Bungartz,
Martin Schreiber,
Atanas Atanasov,
Philipp Neumann
Time and Place
Friday, 1 pm, 02.07.023
Audience
Studenten der Informatik (Bachelor)
Tutorials
-
Exam
-
Semesterwochenstunden / ECTS Credits
6 SWS (6P) / 10 Credits
TUMonline
{{{tumonline}}}



Course is held in German, the slides are in English.

Timeline

  • preliminary session: 10.02.2011, 10:00, room: 02.07.023

Contents

A simple game physics engine is developed in this lab. Starting with simple time steps for moving rigid body objects you will successively extend your developments by collision detection, rotations, friction, etc. to obtain a game physics engine.

Topics:

  • Introduction to game engines (Visualization, physics, scripting, ...)
  • Game-Physics (Force, momentum, torque, ...)
  • Game-Math (Numerical approximations, accuracy, time-steps, ...)
  • Modelling of springs, Ropes
  • Collision detection
  • Resolving of interpenetrations
  • Friction
  • ...

Prerequisites

  • Preliminary knowledge in C++ is advantageous, but it's no prerequisite. However, you should have experiences in object-oriented programming - e.g. Java programming.
  • No prior knowledge about visualization is necessary: A framework for visualization, interactivity and the interface for the physics is given. Thus you'll only have to implement the physics part.
  • Also no prior knowledge about physics is necessary. We'll give a short introduction to physics.


Timetable

The class takes place every Friday at 1 pm in room 02.07.023. This timetable is only preliminary! NEXT SESSION WILL TAKE PLACE ON THURSDAY, JUNE 9, at 16:00!

Number Topic Worksheet Presentation Slides Date
1 Warmup: Explicit Euler, Physics I, Falling Sphere Worksheet 1 Presentation 6.5.
2 Convergence, Stability, Analytical solutions, Collisions I, Resolving interpenetrations Worksheet 2 Presentation (Update: collision points) 13.5.
3 Springs/Ropes, Linear momentum, Quaternions Worksheet 3 (updated, 26. May) Presentation 20.5.
4 Collisions: Sphere-box, plane-box Worksheet 4 Presentation 27.5.
5 Collisions: Box-box, separating axes Worksheet 5 Presentation (updated, 21. Juni: Intersection points, 11. Aug.: Vertex-Face Collision Point) 27.5.
6 Angular momentum, micro-collisions, damping Worksheet 6 Presentation (updated, 21. Juni: `t`) 9.6., 16:00
7 Friction Worksheet 7 Presentation (updated, 14. Juli: planar velocity) 17.6.
- - 24.6.
- Question session / Project proposal 1.7.
8 Project 8.7.
9 Project 15.7.
- - 22.7.
10 Project Presentation 29.7.

Frequently Asked Questions (FAQs)

If you have a question, first take a look at our FAQ Website: PSE Game Physics - Summer 11 - FAQs


Material

The Engine Skeleton is available for download:

When compiling SBNDEngine, don't forget to install freeglut3-dev



Recommended Literature

  • Game Physics Engine Development, Ian Millington
  • Real-Time Collision Detection, Christer Ericson
  • Game Physics, David E. Eberly


SBND Engine

The following keysettings are preset by our engine. The keys which are for debugging should be the most important for you to hunt bugs ;-)

  • Default mode:
Key Function
[a] Go left
[s] Go back
[w] Go forward
[d] Go right
[g/G] activate/deactivate gravity
[space] Switch between '1st person mode' and 'free mouse mode'
[1]-[0], [F1]-[F12] Switch to other scene and reset
[r] Total reset
[e] Reset objects only
  • Debug mode:

You can use this mode to get some information about objects. An output is created for object which is currently under the mouse cursor.

Key Function
[backspace] Activate/Deactivate Debug mode
[mouse wheel up],[+] Go one timestep forward + record current state
[mouse wheel down],[-] Go one timestep back (restore recorded state)


Preview

  • Hanging Bridge simulated with ropes:

screenshot_bridge.png

  • Falling objects (Cubes, Spheres):

screenshot_falling_objects.png

  • Many balls:

screenshot_balls.png

Registration

tum online: [1]