OpenGL ES

一、2D制图。 

1.构建opengl es 的基本开发框架

回调android.opengl.GLSurfaceView.Renderer.

在Renderer借口中定义如下3个方法。

void onSurfaceCreated(GL10 gl, EGLConfig config) //创建或者被重建的时候调用,设置初始化功能。

void onDrawFrame(GL10 gl) //绘制每一帧时调用,类似View中的onDraw方法。在该方法中绘制2D或3D图形。

 void onSurfaceChanged(GL10 gl, int width, int height)//界面(主视图)发生改变时调用,不管窗口尺寸是否发生变化,在程序开始的时候至少执行一次。

Opengl 的坐标系。

OpenGL ES

opengl的坐标是三维的,所以三个点确定一个坐标。

onDrawFrame方法里的glTranslatef方法,是将坐标的中心原点沿xyz的方向移动。

gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);//允许设置顶点。

gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer);//设置顶点。

gl.glVertexPointer(坐标的维数, 定点的类型, 步长,顶点缓存);

gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, vertices.length / 3);//绘制图形。

gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);//在开启顶点设置功能后,必须使用该代码,关闭顶点设置功能。

 

2.颜色:

其中颜色分为:Smooth Color (平滑颜色),Flat Clolr(单色调颜色)

先说简单的Flat Color颜色把。

在使用单色调之前,必须关闭颜色渲染功能,要不然不起作用。

直接调用方法glColor4f(red,gree,blue,alpha)方法。

在来说说相对复杂的平滑颜色

在使用平滑颜色时需要开启颜色渲染功能。

gl.glEnableClientState(GL10.GL_COLOR_ARRAY);

然后通过glColorPointer方法可以进行平滑着色。

gl.glColorPointer(4, GL10.GL_FLOAT, 0, colorBuffer);和glVertexPointer方法的参数相似。

其中第一个数字4表示每一个颜色的值的数目(R,G,B.A)

最后需要对颜色渲染功能进行关闭。

gl.glDisableClientState(GL10.GL_COLOR_ARRAY);

 

3.旋转

旋转的方法是void glRotatef(float angle,float x,float y,float z)

其中angle表示选择的角度,后边的x,y,z意思是,按照那个点去旋转。

最后需要在onDrawFrame方法的最好不断变化rotate变量,才能保存选择,

rotate+=1;

 

 

你可能感兴趣的:(android,框架)