a fps (first person shooter) game from 1999 the source code was released in 2005 it is entirely...

6
MOTION CAPTURING IN QUAKE III

Upload: silas-wheeler

Post on 24-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A FPS (First Person Shooter) game from 1999  The source code was released in 2005  It is entirely written in C and ASM

MOTION CAPTURING IN QUAKE III

Page 2: A FPS (First Person Shooter) game from 1999  The source code was released in 2005  It is entirely written in C and ASM

What is Quake III?

A FPS (First Person Shooter) game from 1999

The source code was released in 2005 It is entirely written in C and ASM

Page 3: A FPS (First Person Shooter) game from 1999  The source code was released in 2005  It is entirely written in C and ASM

Why Quake III?

It is a simple game

It requires the user only to move and shoot

Ideal to demonstrate motion capturing that is applicable to military robot control

Page 5: A FPS (First Person Shooter) game from 1999  The source code was released in 2005  It is entirely written in C and ASM

How did we do it?

Domi downloaded and compiled several versions and tempered with them until they worked, then added the threading and code stubs and made the code available to everyone else

The other teams then contributed the algorithms and the interface with OpenCV

The motion capturing code can be found here:

http://trac.assembla.com/ioquake3mocap/browser/code/client/cl_mocap.c

Page 6: A FPS (First Person Shooter) game from 1999  The source code was released in 2005  It is entirely written in C and ASM

Implementation

Once you join the game, you can toggle motion capturing on and off via key-press

A thread, parallel to the rendering thread, retrieves images from the cameras and scans them for the single-colored targets

Another algorithm converts the two-dimensional target information into two three-dimensional points and uses that to determine yaw and pitch angles

The rendering thread gives control to the motion-capturing code in every iteration

During rendering, the angles are copied into the client state, in a thread-safe manner