keyword on google not baidu ~~~
hot article
http://blog.csdn.net/mapdigit/article/details/7526556
simple show:
http://www.cnblogs.com/shangdahao/archive/2011/11/05/2233587.html
链接如下:
http://www.opengl.org/wiki/Getting_started
博客
http://www.jayway.com/author/pererikbergman
jayway
http://www.jayway.com/category/android/
博客
http://www.cnblogs.com/sunnychuh/archive/2011/07/20/2112110.html
http://www.cnblogs.com/sunnychuh/archive/2011/07/20/2112108.html
api
http://www.khronos.org/opengles/sdk/1.1/docs/man/
source web
http://www.opengl.org/
http://www.jpct.net/
good code:
http://www3.ntu.edu.sg/home/ehchua/programming/android/Android_3D.html
http://nehe.gamedev.net/
http://www.learnopengles.com/
类似api
http://www.ikags.com/bbs/read.php?tid=741
this book may help :
OpenGL Programming Guide: The Official Guide to Learning OpenGL
important
http://www.glprogramming.com/
http://www.glprogramming.com/red/
----------------------
http://www.cnblogs.com/bison1989/archive/2012/04/15/2451005.html
---------------------
api
参考book:
iPhone 3D Programming, OpenGL.ES.2.0.Programming.Guide
Pro.OpenGL.ES.for.Android.2012
引用上述某个链接的一段话:
Android OpenGL ES 对于不同坐标系下坐标变换,大都使用矩阵运算的方法来定义和实现的。这里介绍对应指定的坐标系(比如viewmodel, projection或是viewport) Android OpenGL ES支持的一些矩阵运算及操作。
OpenGL ES 中使用四个分量(x,y,z,w)来定义空间一个点,使用4个分量来描述3D坐标称为齐次坐标 :所谓齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示。 它有什么优点呢? 许多图形应用涉及到几何变换,主要包括平移、旋转、缩放。以矩阵表达式来计算这些变换时,平移是矩阵相加,旋转和缩放则是矩阵相乘,综合起来可以表示为p’ = m1*p + m2(m1旋转缩放矩阵, m2为平移矩阵, p为原向量 ,p’为变换后的向量)。引入齐次坐标的目的主要是合并矩阵运算中的乘法和加法,表示为p’ = M*p的形式。即它提供了用矩阵运算把二维、三维甚至高维空间中的一个点集从一个坐标系变换到另一个坐标系的有效方法。 它可以表示无穷远的点。n+1维的齐次坐标中如果h=0,实际上就表示了n维空间的一个无穷远点。对于齐次坐标[a,b,h],保持a,b不变,|V|=(x1*x1,y1*y1,z1*z1)^1/2的过程就表示了标准坐标系中的一个点沿直线 ax+by=0 逐渐走向无穷远处的过程。
为了实现viewing, modeling, projection 坐标变换,需要构造一个4X4 的矩阵M,对应空间中任意一个顶点vertex v ,经过坐标变换后的坐标v’=Mv
矩阵本身可以支持加减乘除,对角线全为1的4X4 矩阵成为单位矩阵Identity Matrix 。
- 将当前矩阵设为单位矩阵的指令 为glLoadIdentity().
- 矩阵相乘的指令glMultMatrix*() 允许指定任意矩阵和当前矩阵相乘。
- 选择当前矩阵种类glMatrixMode(). OpenGL ES 可以运行指定GL_PROJECTION,GL_MODELVIEW等坐标系,后续的矩阵操作将针对选定的坐标。
- 将当前矩阵设置成任意指定矩阵glLoadMatrix*()
- 在栈中保存当前矩阵和从栈中恢复所存矩阵,可以使用glPushMatrix()和glPopMatrix()
- 特定的矩阵变换平移glTranslatef(),旋转glRotatef() 和缩放glScalef()
矩阵操作,单位矩阵
在进行平移,旋转,缩放变换时,所有的变换都是针对当前的矩阵(与当前矩阵相乘),如果需要将当前矩阵回复最初的无变换的矩阵,可以使用单位矩阵(无平移,缩放,旋转)。
public abstract void glLoadIdentity()。
在栈中保存当前矩阵和从栈中恢复所存矩阵,可以使用
public abstract void glPushMatrix()
和
public abstract void glPopMatrix()。
在进行坐标变换的一个好习惯是在变换前使用glPushMatrix保存当前矩阵,完成坐标变换操作后,再调用glPopMatrix恢复原先的矩阵设置。