accelerometer and opengl

Post on 11-May-2015

3.586 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

Jon liang stepped in to pinch hit on two sessions that the presenters had to miss. OpenGL and Acceleromter. Hit it out of the park. Non Game App Dev Track. 360|iDev San Jose 09

TRANSCRIPT

Introduction to Accelerometers and OpenGL ES on the iPhone

● Jon Liang● Mobility Lead – Mobclix● http://www.mobclix.com

● Jeff LaMarche ● Author - Beginning iPhone Development: Exploring

the iPhone SDK● http://iphonedevelopment.blogspot.com/

Introduction to Accelerometers and OpenGL ES on the iPhone

● OpenGL ES● Accelerometer● More OpenGL

OpenGL ES 1.1 - Open Graphics Library for Embedded Systems

OpenGL

Source:http://www.cs.unc.edu/~walk/pap//fig1.gif

OpenGL (continued)

● Platform independent● Input

● Points, Lines, Polygons● Transforms● Textures● Transparency● Lighting

OpenGL Pipeline

Source: Apple

Code: Hello World

Quartz 2D vs. OpenGL for 2D

● Quartz 2D● Higher Level API

– Compatible with CoreAnimation

– Easier to Display Text● Inverted y-axis

● OpenGL● Low Level API

– More Control– Less Overhead

● 3D

Source: Apple

iPhone Limitations

● 24 MB of Memory for textures and surfaces.● The maximum texture size is 1024 x 1024.● 2D texture targets are supported; other texture

targets are not.● Stencil buffers aren’t available.● More Info:

– http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/GraphicsandDrawing/chapter_6_section_5.html#//apple_ref/doc/uid/TP40007072-CH10-SW18

Open GL → OpenGL ES

● Removed glBegin() and glEnd()● Use glDrawArrays() or glDrawElements()

● Added Fixed Point data types● Embedded systems often don't have FPU's.

● Removed convenience functions● More lightweight implementation.

Questions?

Accelerometer

Accelerometer

● Hardware● 3-Axis MEMS Accelerometer

– Part Number: LIS302DL– Max Sample Rate: 400 Hz– Max Acceleration: ± 8g

● No Gyroscope

● Implications● No Direct Angular Acceleration Data● Zeroed at Free Fall● Limited Amplitude (± 4g per axis)

Basic Tasks: Signal Processing

● Isolating Large Movements● Low-Pass Filter:

xn = x

n-1/2 + x/2

● Isolating Small Movements● High-Pass Filter:

xn = x - x

n-1

Sournce: http://jp.physoc.org/content/vol550/issue3/fulltext/873/Figures/HiRes/873-F2.gif

Basic Tasks: Ground Angle

● 2 Dimensions:Θ = atan(y/x)

● Axis-Plane:Θ = atan(z/sqrt(x2+y2))

Source: http://www.forestgumpsays.com/wp-content/uploads/2008/03/3iphoneaxes.jpg

Basic Tasks: Simple Gestures

● SwipePositive-Negative Spike

● ShakeOscillating Wave

● Rotations2-Axis Change

Classes

UIAccelerometer

Methods+ sharedAccelerometer

PropertiesupdateIntervaldelegate

MyClass <UIAccelerationDelegate>

Methods- (void) accelerometer:(UIAccelerometer*) accelerometer

didAccelerate:(UIAcceleration*) acceleration

UIAcceleration

PropertiesUIAccelerationValue xUIAccelerationValue yUIAccelerationValue z NSTimeInterval timestamp

MyOtherClass

Code: Hello World (continued)

Questions?

More Open GL

Apple Sample Code

● Accelerometer Graph● Crash Landing● GLGravity● GLPaint● GLSprite● Touchfighter II

Additional Resources

● Open GL● http://www.khronos.org/opengles/sdk/1.1/docs/man/● http://www.glprogramming.com/red/

● Accelerometer● www.st.com/stonline/products/literature/ds/12726.p

df● http://squallchua.blogspot.com/2008/12/wiimote-gesture-recognition.html● http://ifiddling.blogspot.com/2009/01/dummy2.html

Additional Resources (continued)

● Collision Models● http://www.metanetsoftware.com/technique/tutorialA

.html● http://www.metanetsoftware.com/technique/tutorialB

.html● http://www.euclideanspace.com/physics/dynamics/c

ollision/index.htm

top related