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的坐标是三维的,所以三个点确定一个坐标。

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;

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值