Graphics Programs Reference
In-Depth Information
Projection transformation allows control of the projection of cube world of NDCS
( Figure 3-17 ) onto the (rectangular) 2D space of the display screen. This helps re-
move the skewing of rendered graphics (since we limit the viewing volume, graphics
no longer stretch when the orientation changes). Additionally, the final coordinate
system becomes right handed (that is, point (0, 0, 1) in this coordinate system
is closer to the viewer than point (0, 0, -1) ).
The Matrix Class
Most graphic rendering APIs do not provide built-in functions for transformations.
However, frameworks hosting such APIs do provide utility methods for the same.
Once again, Android comes to the rescue, providing useful methods for transform-
ations using the android.opengl.Matrix class (not to be confused with the
android.graphics.Matrix class). The following is a list of matrix math util-
ities from this class to help easily perform the transformations discussed so far:
Geometric/Modeling transformation
Matrix .translateM(float[ ] m, int mOffset, float x, float y, float z):
Translates matrix m by x , y, and z along x-axis, y-axis, and z-ax-
is, respectively (please note that, for all methods we use from the
Matrix class, we set the mOffset argument as '0,' which
means “no-offset”)
Matrix .rotateM(float[ ] m, int mOffset, float a, float x, float y,
float z): Rotates matrix m by angle a (in degrees) about the speci-
fied axes
Matrix .scaleM(float[ ] m, int mOffset, float x, float y, float z):
Scales matrix m by x , y, and z along x-axis, y-axis, and z-axis,
respectively
Coordinate/Viewing transformation
Matrix .setLookAtM(float[ ] m, int mOffset, float eyeX, float eyeY,
float eyeZ, float centerX, float centerY, float centerZ, float upX,
float upY, float upZ): Defines a view matrix m in terms of an eye
point (that is, viewer's position), a center of view, and an up vec-
tor.
Search WWH ::




Custom Search