OpenGL多边形

在OpenGL中绘制任何模型都会分解为三角形和四边形,在类中的onDrawFrame方法中添加代码即可绘制图形。在调用glLoadIdentity后,实际上是将当前点移到了屏幕中心,X坐标从左至右,Y坐标从下至上,Z坐标从里至外。OpenGL屏幕中心坐标值是X和Y轴上的0.0f点中心左边的坐标值是负值,右边是正值。向定端是正值,向底端是负值。移入屏幕深处是负值,移除屏幕时正值。
三角形都是由3个顶点组成,所以先定义顶点坐标。这里的三角形不在处于2D平面中,而是在3D空间中,所以每个坐标点由(X,Y,Z)组成
int one = 0x10000;
private IntBuffer triggerBuffer = IntBuffer.wrap(new int[] {
0, one, 0,
-one, -one, 0, 
one, -one, 0 });
使用glTranslatef(X,Y,Z)中心改变例如下代码将X轴左移1.5个单位,Y轴不动,移入屏幕6.0个单位。
gl.glTranslatef(-1.5f, 0.0f, -6.0f);
这里徐注意的是屏幕内移动的单位必须小于前面通过glFrustrmf方法所设置的最远距离。
我们要为OpenGL设置一个顶点数组,所以需要告诉OpenGL要设置顶点这个功能,通过一下代码可以开启顶点设置功能:
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
需要绘制三角形还需告诉OpenGL所要绘制的三角形的顶点数据。可以通过glVertexPointer (int size,int type, int stride, Buffer pointer)方法来设置顶点数据,该方法中的参数size用于描述顶点的尺寸,本例中的使用的是X,Y,Z坐标系,所以是3;type描述顶点类型,本例中的数据时固定的,所以使用了GL_FIXED表示固定的顶点;stride描述步长;pointer则是顶点缓存,即我们创建的顶点数组。
设置好了顶点缓冲,我们就可以通过glDrawArrays(int mode, intfirst, int count)方法将这些顶点绘制出来,参数mode描述了绘制模式,我们使用GL_TRIANGLES来表示三角形,后面两个参数分别是开始位置和要绘制的顶点计数。如下是我们绘制一个三角形的方法:
gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 3);
注意:我们通过glEnableClientState方法开启了顶点设置功能,在使用完之后,需要通过gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);方法关闭顶点设置功能。

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://my.oschina.net/u/2406628/blog/473406

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值