OpenGL ES

系统 1451 0

一、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;

 

 

OpenGL ES


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论