Android 3D系列之基本概念篇

为了提高性能,通常还需要将浮点数组存入一个字节缓冲中。所以有了下面的操作:

  1. ByteBuffer vbb = ByteBuffer.allocateDirect(vertices.length * 4);  //申请内存

  2. vbb.order(ByteOrder.nativeOrder());  //设置字节顺序,其中ByteOrder.nativeOrder()是获取本机字节顺序

  3. FloatBuffer vertexBuffer = vbb.asFloatBuffer();  //转换为float

  4. vertexBuffer.put(vertices);  //添加数据

  5. vertexBuffer.position(0);  //设置缓冲区起始位置

OpenGLES的很多函数功能的使用状态是处于关闭的。启用和关闭这些函数可以用glEnableClientStateglDisableClientState来完成。

  1. // 指定需要启用定点数组  

  2. gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);  

  3. // 说明启用数组的类型和字节缓冲,类型为GL_FLOAT  

  4. gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer);  

  5. // 不再需要时,关闭顶点数组  

  6. gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);  



你可能感兴趣的:(OpenGL,android,绘图)