Mobile applications are not portable desktop (traditional) applications
Factors that differentiate mobile platforms from desktop platforms:
Limited memory
CPU speed
Display capabilities (screen size limit)
Apps vs. applications
Mobile internet access
User input (i.e., touch, multitouch, accelerometer)
Built-in capabilities (phone, GPS, camera)
Limited battery life
3D Space
x, y, and z coordinates
Determining +x, +y and +z directions
Right-hand system
+x to the right, +y up, +z out of the screen
determining positive rotation around axes
Open your right hand
Stick out the thumb
Point your thumb along one of the axes in a positive direction
Curl your fingers around the axis
A positive rotation around that axis will be in the same direction that your fingers curl
OpenGL, the industry's most widely used and supported 3D graphics application programming interface (API), uses the right-hand system by default.
3D Primitives
Points (x, y, z)
Lines
Line strip (connected)
Line loop
Triangles
Triangle strip
Triangle fan
Quads (Quadrilaterals)
Quad strip (series of connected quadrilaterals)
Polygon (Polygon with an arbitrary number of vertices)
Transformations
Translation - moving a point from one coordinate in 3D space to another (uses matrix addition)
Scaling (uses matrix multiplication)
Rotation (uses matrix multiplcation; ugh)
Projections
Displaying the 3D world onto a 2D display
Like a camera, but think of a “Synthetic camera”.
Projection plane - the camera lens of the 3D world
Parallel projection:
Often used by CAD engineers
Orthogonal projections: top, front, and side views
Not meant to be realistic, i.e., there is loss of depth information
OpenGL
Open Graphics Library
Developed by Silicon Graphics, Inc. (SGI) in 1992
The industry's most widely used and supported 2D and 3D graphics application programming interface (API)
hardware and software independent
vendor neutral
Allows direct access to graphics hardware
Designed using a client/server paradigm, allowing the client application and the graphics server controlling the display hardware to exist on the same or separate machines
Windowing system independent, therefore contains no windowing operations or mechanisms for user input.
Uses a right-handed coordinate system by default for viewing transformations (hence, +x to the right, +y up, +z out of the screen)
One library that is provided with OpenGL that is used quite frequently: OpenGL Utility Library (GLU)
Contains several routines that use lower-level OpenGL commands to perform such tasks as setting up matrices for specific viewing orientations and projections, and rendering surfaces.
Does not provide direct support for complex geometrical shapes, such as cubes or spheres
Download the zip archive containing the stable version of lwlgl to your ~/Downloads directory.
For each LWJGL program you run, you will need to add something like the following native library path argument to the “VM arguments” field in the “Run Configurations” for each class: -Djava.library.path=/export/home/hawkdom2/jchung/Downloads/lwjgl-2.9.0/native/linux
Substitute your userid for 'jchung' in the above line