2019独角兽企业重金招聘Python工程师标准>>>
三角形都是由3个顶点组成,所以先定义顶点坐标。这里的三角形不在处于2D平面中,而是在3D空间中,所以每个坐标点由(X,Y,Z)组成
使用glTranslatef(X,Y,Z)中心改变例如下代码将X轴左移1.5个单位,Y轴不动,移入屏幕6.0个单位。 int one = 0x10000;
private IntBuffer triggerBuffer = IntBuffer.wrap(new int[] {
0, one, 0,
-one, -one, 0,
one, -one, 0 });
这里徐注意的是屏幕内移动的单位必须小于前面通过glFrustrmf方法所设置的最远距离。 gl.glTranslatef(-1.5f, 0.0f, -6.0f);
我们要为OpenGL设置一个顶点数组,所以需要告诉OpenGL要设置顶点这个功能,通过一下代码可以开启顶点设置功能:
需要绘制三角形还需告诉OpenGL所要绘制的三角形的顶点数据。可以通过glVertexPointer (int size,int type, int stride, Buffer pointer)方法来设置顶点数据,该方法中的参数size用于描述顶点的尺寸,本例中的使用的是X,Y,Z坐标系,所以是3;type描述顶点类型,本例中的数据时固定的,所以使用了GL_FIXED表示固定的顶点;stride描述步长;pointer则是顶点缓存,即我们创建的顶点数组。 gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
设置好了顶点缓冲,我们就可以通过glDrawArrays(int mode, intfirst, int count)方法将这些顶点绘制出来,参数mode描述了绘制模式,我们使用GL_TRIANGLES来表示三角形,后面两个参数分别是开始位置和要绘制的顶点计数。如下是我们绘制一个三角形的方法:
注意:我们通过glEnableClientState方法开启了顶点设置功能,在使用完之后,需要通过gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);方法关闭顶点设置功能。 gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 3);
版权声明:本文为博主原创文章,未经博主允许不得转载。