在Android中使用OpenGL ES绘制3D对象的全面指南
1. 绘制顶点
在Android中搭建好OpenGL ES环境后,就可以开始实际的绘制工作了。OpenGL ES主要支持两种绘制调用: glDrawArrays() 和 glDrawElements() 。这两种方法都需要通过调用 glVertexPointer 来分配顶点缓冲区。由于Android基于Java运行,不能直接传递任意数组,因为数组内容可能在内存中移动。所以,我们需要使用 ByteBuffer 、 FloatBuffer 或 IntBuffer 来确保数据在内存中的位置固定。
以下是一个将浮点数组转换为 FloatBuffer 的辅助方法:
FloatBuffer getFloatBufferFromFloatArray(float array[]) {
ByteBuffer tempBuffer = ByteBuffer.allocateDirect(array.length * 4);
tempBuffer.order(ByteOrder.nativeOrder());
FloatBuffer buffer = tempBuffer.asFloatBuffer();
buffer.put(array);
buffer.position(0);
return buffer;
}
超级会员免费看
订阅专栏 解锁全文
684

被折叠的 条评论
为什么被折叠?



